经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Docker » 查看文章
docker容器源码部署httpd用存储卷部署网站(推荐)
来源:jb51  时间:2021/12/8 12:43:53  对本文有异议

docker容器源码部署httpd,用存储卷部署网站

创建一个httpd镜像

  1. // 创建一个httpd容器
  2. [root@localhost ~]# docker run -tid --name httpd centos
  3. 2d693e16f4f3734b127cbae90d189c1b4e78619a54ceec912a82d96cf4f1c345
  4. [root@localhost ~]# docker ps
  5. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  6. 2d693e16f4f3 centos "/bin/bash" 5 seconds ago Up 4 seconds httpd
  7.  
  8. // 连接上这个容器
  9. [root@localhost ~]# docker exec -it 2d693e16f4f3 /bin/bash
  10. [root@2d693e16f4f3 /]#
  11.  
  12. // 把源码包放到容器中
  13. [root@localhost ~]# docker cp /usr/src/apr-1.7.0.tar.gz 2d693e16f4f3:/usr/src/
  14. [root@localhost ~]# docker cp /usr/src/apr-util-1.6.1.tar.gz 2d693e16f4f3:/usr/src/
  15. [root@localhost ~]# docker cp /usr/src/httpd-2.4.49.tar.gz 2d693e16f4f3:/usr/src/
  16. [root@2d693e16f4f3 /]# ls /usr/src/
  17. apr-1.7.0.tar.gz debug kernels
  18. apr-util-1.6.1.tar.gz httpd-2.4.49.tar.gz
  19.  
  20. // 源码安装httpd
  21. [root@2d693e16f4f3 /]# useradd -r -M -s /sbin/nologin apache
  22. [root@2d693e16f4f3 /]# id apache
  23. uid=998(apache) gid=996(apache) groups=996(apache)
  24. [root@2d693e16f4f3 /]# yum groups mark install 'Development Tools' -y
  25. [root@2d693e16f4f3 /]# yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make
  26. [root@2d693e16f4f3 /]# cd /usr/src/
  27. [root@2d693e16f4f3 src]# tar xf apr-1.7.0.tar.gz -C /usr/local/
  28. [root@2d693e16f4f3 src]# tar xf apr-util-1.6.1.tar.gz -C /usr/local/
  29. [root@2d693e16f4f3 src]# tar xf httpd-2.4.49.tar.gz -C /usr/local/
  30. [root@2d693e16f4f3 src]# cd /usr/local/apr-1.7.0/
  31. [root@2d693e16f4f3 apr-1.7.0]# vi configure
  32. cfgfile="${ofile}T"
  33. trap "$RM \"$cfgfile\"; exit 1" 1 2 15
  34. # $RM "$cfgfile" //将此行加上注释,或者删除此行
  35. [root@2d693e16f4f3 apr-1.7.0]# ./configure --prefix=/usr/local/apr
  36. [root@2d693e16f4f3 apr-1.7.0]# make && make install
  37. [root@2d693e16f4f3 local]# cd apr-util-1.6.1/
  38. [root@2d693e16f4f3 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
  39. [root@2d693e16f4f3 apr-util-1.6.1]# make && make install
  40. [root@2d693e16f4f3 apr-util-1.6.1]# cd ../httpd-2.4.49/
  41. [root@2d693e16f4f3 httpd-2.4.49]# ./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
  42. [root@2d693e16f4f3 httpd-2.4.49]# make && make install
  43. [root@2d693e16f4f3 local]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
  44. [root@2d693e16f4f3 local]# source /etc/profile.d/httpd.sh
  45. [root@2d693e16f4f3 local]# ln -s /usr/local/apache/include /usr/include/apache
  46. [root@2d693e16f4f3 local]# apachectl start
  47. [root@2d693e16f4f3 local]# ss -anlt
  48. State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
  49. LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
  50. [root@2d693e16f4f3 local]# cd /
  51. [root@2d693e16f4f3 /]#
  52. [root@2d693e16f4f3 /]#
  53. [root@2d693e16f4f3 /]# vi start.sh
  54. #! /bin/sh
  55. /usr/local/apache/bin/apachectl start
  56. /bin/bash
  57. [root@2d693e16f4f3 /]# chmod +x start.sh
  58.  
  59.  
  60. // 构建镜像
  61. [root@localhost ~]# docker commit -p -c 'CMD ["/bin/bash","start.sh"]' 2d693e16f4f3 syblyw0806/httpd:v0.1
  62. sha256:16913ce01fdceee9a389906cf385893120734b1a088b894cc5dce1a9ead252fd
  63. [root@localhost ~]# docker images
  64. REPOSITORY TAG IMAGE ID CREATED SIZE
  65. syblyw0806/httpd v0.1 16913ce01fdc 6 seconds ago 713MB
  66. busybox latest d23834f29b38 6 days ago 1.24MB
  67. centos latest 5d0da3dc9764 2 months ago 231MB

部署nfs

需要开启一台新的虚拟机

  1. [root@localhost ~]# yum -y install nfs-utils
  2. [root@localhost ~]# systemctl restart nfs-server.service
  3. [root@localhost ~]# mkdir /nfs
  4. [root@localhost ~]# chmod 777 /nfs/
  5. [root@localhost ~]# vim /etc/exports
  6. /nfs 192.168.200.136(rw)
  7. [root@localhost ~]# systemctl restart nfs-server

在有docker服务的虚拟机上一样安装nfs

  1. [root@localhost ~]# yum -y install nfs-utils
  2. [root@localhost ~]# showmount -e 192.168.200.137
  3. Export list for 192.168.200.137:
  4. /nfs 192.168.200.136

挂载

  1. [root@localhost ~]# mount -t nfs 192.168.200.137:/nfs /var/www/html/
  2. [root@localhost ~]# df -h
  3. Filesystem Size Used Avail Use% Mounted on
  4. devtmpfs 883M 0 883M 0% /dev
  5. tmpfs 901M 0 901M 0% /dev/shm
  6. tmpfs 901M 8.9M 892M 1% /run
  7. tmpfs 901M 0 901M 0% /sys/fs/cgroup
  8. /dev/mapper/rhel-root 47G 23G 25G 48% /
  9. /dev/nvme0n1p1 1014M 179M 836M 18% /boot
  10. tmpfs 181M 0 181M 0% /run/user/0
  11. overlay 47G 23G 25G 48% /var/lib/docker/overlay2/0a219b8bbb04290f6b1cc1ae29f5eb1a9bc713ff12c86c86c7e13d5c7ca63a0e/merged
  12. 192.168.200.137:/nfs 47G 2.2G 45G 5% /var/www/html

创建容器并映射

  1. [root@localhost ~]# docker run -itd --name httpd1 -p 80:80 -v /var/www/html/:/usr/local/apache/htdocs 16913ce01fdc
  2. 42e38f1db61e49fafa0682125d0425e3d41c4f2db0f48e1973dee1905a90daf3
  3. [root@localhost ~]# docker ps
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. 42e38f1db61e 16913ce01fdc "/bin/bash start.sh" 10 seconds ago Up 9 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp httpd1

上传我们要部署网站的代码

  1. [root@localhost ~]# cd /var/www/html/
  2. [root@localhost html]# ls
  3. game.html images index.html js style

此时在新开的一台虚拟机查看nfs

  1. [root@localhost ~]# ls /nfs/
  2. game.html images index.html js style

访问测试


到此这篇关于docker容器源码部署httpd用存储卷部署网站的文章就介绍到这了,更多相关docker容器部署httpd内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号