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 '/$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
CONTAINER ID   IMAGE        COMMAND       CREATED          STATUS          PORTS                               NAMES
96f9bede2440   httpd:v1.0   "/start.sh"   7 seconds ago    Up 6 seconds    0.0.0.0:80->80/tcp, :::80->80/tcp   httpd
[root@localhost ~]# docker exec -it httpd /bin/bash
[root@96f9bede2440 /]# ss -anlt
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@96f9bede2440 /]# cd /usr/local/apache/htdocs/
[root@96f9bede2440 htdocs]# ls

//上传网页文件
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# ls
css  index.html  js

//查看容器中
[root@localhost html]# ls
index.html

访问测试
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值