栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

基于容器制作apache镜像

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于容器制作apache镜像

文章目录
  • 基础环境准备
  • 创建容器
  • 在容器内源码编译apache
  • 更改配置验证安装效果
  • 制作镜像
  • 新开一台容器验证

基础环境准备
[root@rookie ~]# cd /etc/yum.repos.d/
[root@rookie yum.repos.d]# ls
CentOS-Base.repo  epel-modular.repo  epel-testing-modular.repo
docker-ce.repo    epel.repo          epel-testing.repo
[root@rookie yum.repos.d]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-04-26 19:33:57 CST; 35min ago
# 准备好apache编译的三个软件包给到容器   
[root@rookie yum.repos.d]# cd
[root@rookie ~]# mkdir package
[root@rookie ~]# ls package/
  apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.53.tar.gz

#拉centos8的镜像
[root@rookie ~]# docker pull centos
[root@rookie ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
centos       latest    5d0da3dc9764   7 months ago   231M



创建容器
#容器名字叫web 
[root@rookie ~]# docker run -it --name c1 centos  /bin/bash
[root@1c1edff0ccad /]#

在容器内源码编译apache
#配置阿里云网络源
[root@682ecaf12cb /]# cd /etc/yum.repos.d/
[root@682ecaf12cbf yum.repos.d]# ls
CentOS-Base.repo
[root@682ecaf12cbf yum.repos.d]# dnf clean all
[root@682ecaf12cbf yum.repos.d]# dnf makecache

#从虚拟机拷贝三个软件包解压缩
[root@rookie ~]# ls
anaconda-ks.cfg  apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.53.tar.gz
[root@rookie ~]# docker cp /package/ c1:/root/package
[root@682ecaf12cbf ~]# cd package/
[root@682ecaf12cbf package]# ls
[root@682ecaf12cbf package]# tar -xf apr-1.7.0.tar.gz 
[root@682ecaf12cbf package]# tar -xf apr-util-1.6.1.tar.gz 
[root@682ecaf12cbf package]# tar -xf httpd-2.4.53.tar.gz 
[root@682ecaf12cbf package]# ls
apr-1.7.0	  apr-util-1.6.1	 httpd-2.4.53
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.53.tar.gz


#安装依赖包
[root@682ecaf12cbf~]# dnf -y install openssl-devel pcre-devel expat-devel gcc make libtool


#源码编译 apr,apr-util,httpd
[root@682ecaf12cbf apache]# cd apr-1.7.0
[root@682ecaf12cbf apr-1.7.0]# vim configure
 $RM "$cfgfile"       # 将此行加上注释,或者删除此行 

[root@682ecaf12cbf apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@682ecaf12cbf apr-1.7.0]# make && make install

[root@682ecaf12cbf apr-1.7.0]# cd ../apr-util-1.6.1
[root@682ecaf12cbf apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
[root@682ecaf12cbf apr-util-1.6.1]# make && make install

[root@682ecaf12cbf apr-util-1.6.1]# cd ../httpd-2.4.53
[root@682ecaf12cbf httpd-2.4.53]# ./configure --prefix=/usr/local/apache --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=worker
[root@682ecaf12cbf httpd-2.4.53]#  make && make install


更改配置验证安装效果
[root@682ecaf12cbf httpd-2.4.53]# cd /usr/local/apache/conf/
[root@682ecaf12cbf conf]# vim httpd.conf 
#ServerName www.example.com:80   #此行取消注释


#启动 
[root@682ecaf12cbf ~]# cd /usr/local/apache
[root@682ecaf12cbf apache]# ./bin/httpd
[root@682ecaf12cbf apache]# ss -antl
State    Recv-Q   Send-Q     Local Address:Port       Peer Address:Port   Process   
LISTEN   0        128              0.0.0.0:80              0.0.0.0:*                
[root@682ecaf12cbf apache]# curl 172.17.0.2
It works!
[root@682ecaf12cbf apache]# pkill httpd
[root@682ecaf12cbf apache]# ss -antl
State   Recv-Q   Send-Q      Local Address:Port       Peer Address:Port   Process  




制作镜像
[root@682ecaf12cbf ~]# cd /usr/local/apache/conf/
[root@682ecaf12cbf conf]# vim  httpd.conf 
# 注释掉 error  log ,Custom access log  这两行

#制作镜像
#先缩减镜像包容量
 [root@682ecaf12cbf /]# du -sh *
0	bin
0	dev
2.4M	etc
0	home
0	lib
0	lib64
0	lost+found
0	media
0	mnt
0	opt
0	proc
151M	root
4.0K	run
0	sbin
0	srv
0	sys
12K	tmp
468M	usr
57M	var
[root@682ecaf12cbf ~]# cd package/
[root@682ecaf12cbf package]# rm -rf *
[root@682ecaf12cbf local]# cd /var/
[root@682ecaf12cbf var]# du -sh *
[root@682ecaf12cbf var]# cd ./cache/
[root@682ecaf12cbf cache]# rm -rf *

#制作镜像并查看
[root@rookie ~]# docker commit -a 'xyx ' -c 'CMD ["/usr/local/apache/bin/httpd","-D","FOREGROUND","-X"]' -p c1 httpd:1.0
sha256:ebfbb9fcaad90ce30ce64b765688090e850cb453cef9630cd16bd7bf43a99d71
[root@rookie ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
httpd        1.0       ebfbb9fcaad9   10 seconds ago   527MB
centos       latest    5d0da3dc9764   7 months ago     231MB


新开一台容器验证
[root@rookie ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED             STATUS             PORTS     NAMES
682ecaf12cbf   centos    "/bin/bash"   About an hour ago   Up About an hour             c1
[root@rookie ~]# docker stop 682ecaf12cbf
682ecaf12cbf
[root@rookie ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED             STATUS                      PORTS     NAMES
682ecaf12cbf   centos    "/bin/bash"   About an hour ago   Exited (0) 39 seconds ago             c1

[root@rookie ~]# docker run -d --name web -p 80:80 httpd:1.0
b5308f653afddcf14ca72c2e42737f9046ae1667c437445229e8578114297eab
[root@rookie ~]# docker ps -a
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS                       PORTS                               NAMES
b5308f653afd   httpd:1.0   "/usr/local/apache/b…"   15 seconds ago   Up 13 seconds                0.0.0.0:80->80/tcp, :::80->80/tcp   web
682ecaf12cbf   centos      "/bin/bash"              2 hours ago      Exited (137) 9 minutes ago                                       c1
[root@rookie ~]# curl 172.17.0.2
It works!


[root@rookie ~]# docker exec -it web /bin/bash
[root@b5308f653afd /]# 


[root@rookie ~]# curl 172.17.0.2
It works!
[root@rookie ~]# curl http://172.17.0.2/a.html


404 Not Found

Not Found

The requested URL was not found on this server.

[root@b5308f653afd ~]# /usr/local/apache/bin/httpd -DFOREGROUND httpd (pid 1) already running # 寄!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/841716.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号