Docker 用存储卷部署Apache网站

//创建容器

[root@localhost ~]# docker run --name centos -dit centos /bin/bash

4aceab993d472d30ff93a09a1b70c47f31b17324ad9b0d269f590e48b13d8e85

[root@localhost ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

4aceab993d47 centos “/bin/bash” 33 seconds ago Up 31 seconds centos

//传输httpd编译所需的资源包

[root@localhost ~]# ls

anaconda-ks.cfg apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.48.tar.gz

[root@localhost ~]# docker cp httpd-2.4.48.tar.gz centos:/usr/src/

[root@localhost ~]# docker cp apr-1.7.0.tar.gz centos:/usr/src/

[root@localhost ~]# docker cp apr-util-1.6.1.tar.gz centos:/usr/src/

//连接容器

[root@localhost ~]# docker exec -it centos /bin/bash

[root@4aceab993d47 /]# ls usr/src

apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz debug httpd-2.4.48.tar.gz kernels

//下载依赖包

[root@4aceab993d47 /]# yum -y groups mark install ‘Development Tools’

[root@4aceab993d47 /]# yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make

//创建用户和组

[root@4aceab993d47 /]# useradd -r -M -s /sbin/nologin apache

//安装依赖包apr

[root@4aceab993d47 src]# tar -xf apr-1.7.0.tar.gz

[root@4aceab993d47 src]# tar -xf apr-util-1.6.1.tar.gz

[root@4aceab993d47 src]# tar -xf httpd-2.4.48.tar.gz

[root@4aceab993d47 src]# ls

apr-1.7.0 apr-1.7.0.tar.gz apr-util-1.6.1 apr-util-1.6.1.tar.gz debug httpd-2.4.48 httpd-2.4.48.tar.gz kernels

[root@4aceab993d47 src]# cd apr-1.7.0

[root@4aceab993d47 apr-1.7.0]# sed -i ‘/ R M " RM " RM"cfgfile"/d’ configure

[root@4aceab993d47 apr-1.7.0]# ./configure --prefix=/usr/local/apr

[root@4aceab993d47 apr-1.7.0]# make && make install

//安装依赖包apr-util

[root@4aceab993d47 apr-1.7.0]# cd …/apr-util-1.6.1

[root@4aceab993d47 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

[root@4aceab993d47 apr-util-1.6.1]# make && make install

//安装依赖包httpd

[root@4aceab993d47 apr-util-1.6.1]# cd …/httpd-2.4.48

[root@4aceab993d47 httpd-2.4.48]# ./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=prefork

[root@4aceab993d47 httpd-2.4.48]# make && make install

//配置环境变量

[root@4aceab993d47 httpd-2.4.48]# echo ‘export PATH=/usr/local/apache/bin:$PATH’ > /etc/profile.d/httpd.sh

[root@4aceab993d47 httpd-2.4.48]# source /etc/profile.d/httpd.sh

[root@4aceab993d47 httpd-2.4.48]# which httpd

/usr/local/apache/bin/httpd

//头文件、man帮助

[root@4aceab993d47 httpd-2.4.48]# ln -s /usr/local/apache/include/ /usr/include/httpd

[root@4aceab993d47 httpd-2.4.48]# echo ‘MANPATH /usr/local/apache/man’ >> /etc/man.config

//取消ServerName前面的注释,避免出现报错

[root@4aceab993d47 httpd-2.4.48]# sed -i ‘/#ServerName/s/#//g’ /usr/local/apache/conf/httpd.conf

//编写启动脚本

[root@4aceab993d47 /]# vi start.sh

[root@4aceab993d47 /]# cat start.sh

#!/bin/bash

/usr/local/apache/bin/apachectl start

/bin/bash

[root@4aceab993d47 /]# chmod +x /start.sh

//制作镜像

[root@localhost ~]# docker commit -a ‘hhr 123@qq.com’ -c ‘CMD [“/start.sh”]’ centos httpd:v1.0

sha256:9a3d5ee27769253e2784f9f1db3494d4374c18174c56d98662c2156a76860d29

[root@localhost ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

httpd v1.0 9a3d5ee27769 5 seconds ago 712MB

//根据新镜像启动一个容器

[root@localhost ~]# docker run --name httpd -dit -p 80:80 -v /var/www/html:/usr/local/apache/htdocs httpd:v1.0

96f9bede244046b94d138592129cd937897132cefa22e51ed7f5900c25454465

[root@localhost ~]# docker ps

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值