docker容器源码部署httpd用存储卷部署网站(推荐)

 更新时间:2021年12月08日 11:40:14   作者:slyybw  
这篇文章主要介绍了docker容器源码部署httpd用存储卷部署网站,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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

创建一个httpd镜像

// 创建一个httpd容器
[root@localhost ~]# docker run -tid --name httpd centos
2d693e16f4f3734b127cbae90d189c1b4e78619a54ceec912a82d96cf4f1c345
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS         PORTS     NAMES
2d693e16f4f3   centos    "/bin/bash"   5 seconds ago   Up 4 seconds             httpd

// 连接上这个容器
[root@localhost ~]# docker exec -it 2d693e16f4f3 /bin/bash
[root@2d693e16f4f3 /]# 

// 把源码包放到容器中
[root@localhost ~]# docker cp /usr/src/apr-1.7.0.tar.gz 2d693e16f4f3:/usr/src/
[root@localhost ~]# docker cp /usr/src/apr-util-1.6.1.tar.gz 2d693e16f4f3:/usr/src/
[root@localhost ~]# docker cp /usr/src/httpd-2.4.49.tar.gz 2d693e16f4f3:/usr/src/
[root@2d693e16f4f3 /]# ls /usr/src/
apr-1.7.0.tar.gz       debug                kernels
apr-util-1.6.1.tar.gz  httpd-2.4.49.tar.gz

// 源码安装httpd
[root@2d693e16f4f3 /]# useradd -r -M -s /sbin/nologin apache
[root@2d693e16f4f3 /]# id apache
uid=998(apache) gid=996(apache) groups=996(apache)
[root@2d693e16f4f3 /]# yum groups mark install 'Development Tools' -y
[root@2d693e16f4f3 /]# yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make
[root@2d693e16f4f3 /]# cd /usr/src/
[root@2d693e16f4f3 src]# tar xf apr-1.7.0.tar.gz -C /usr/local/
[root@2d693e16f4f3 src]# tar xf apr-util-1.6.1.tar.gz -C /usr/local/
[root@2d693e16f4f3 src]# tar xf httpd-2.4.49.tar.gz -C /usr/local/
[root@2d693e16f4f3 src]# cd /usr/local/apr-1.7.0/
[root@2d693e16f4f3 apr-1.7.0]# vi configure
cfgfile="${ofile}T"
    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
    # $RM "$cfgfile"        //将此行加上注释,或者删除此行
[root@2d693e16f4f3 apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@2d693e16f4f3 apr-1.7.0]# make && make install
[root@2d693e16f4f3 local]# cd apr-util-1.6.1/
[root@2d693e16f4f3 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
[root@2d693e16f4f3 apr-util-1.6.1]# make && make install
[root@2d693e16f4f3 apr-util-1.6.1]# cd ../httpd-2.4.49/ 
[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
[root@2d693e16f4f3 httpd-2.4.49]# make && make install
[root@2d693e16f4f3 local]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
[root@2d693e16f4f3 local]# source /etc/profile.d/httpd.sh
[root@2d693e16f4f3 local]# ln -s /usr/local/apache/include /usr/include/apache
[root@2d693e16f4f3 local]# apachectl start
[root@2d693e16f4f3 local]# 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@2d693e16f4f3 local]# cd /
[root@2d693e16f4f3 /]# 
[root@2d693e16f4f3 /]# 
[root@2d693e16f4f3 /]# vi start.sh
#! /bin/sh
/usr/local/apache/bin/apachectl start
/bin/bash
[root@2d693e16f4f3 /]# chmod +x start.sh


// 构建镜像
[root@localhost ~]# docker commit -p -c 'CMD ["/bin/bash","start.sh"]' 2d693e16f4f3 syblyw0806/httpd:v0.1
sha256:16913ce01fdceee9a389906cf385893120734b1a088b894cc5dce1a9ead252fd
[root@localhost ~]# docker images
REPOSITORY         TAG       IMAGE ID       CREATED         SIZE
syblyw0806/httpd   v0.1      16913ce01fdc   6 seconds ago   713MB
busybox            latest    d23834f29b38   6 days ago      1.24MB
centos             latest    5d0da3dc9764   2 months ago    231MB

部署nfs

需要开启一台新的虚拟机

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

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

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

挂载

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

创建容器并映射

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

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

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

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

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

访问测试


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

相关文章

  • Docker 容器日志分析

    Docker 容器日志分析

    这篇文章主要介绍了Docker 容器日志分析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • Docker部署.NET6项目的实现步骤

    Docker部署.NET6项目的实现步骤

    Docker是现在比较流行的开源容器引擎,有了它让我们部署和维护系统更加方便,本文主要介绍了Docker部署.NET6项目,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Docker 镜像构建保姆级入门示例教程

    Docker 镜像构建保姆级入门示例教程

    Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明,这篇文章主要介绍了Docker 镜像构建保姆级入门实战指南,需要的朋友可以参考下
    2022-09-09
  • 在Docker中安装Oracle数据库超详细步骤

    在Docker中安装Oracle数据库超详细步骤

    oracle作为全球最强大的关系型数据库,应用在各行各业,下面这篇文章主要给大家介绍了关于在Docker中安装Oracle数据库的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • Docker如何安全地进入到容器内部

    Docker如何安全地进入到容器内部

    本文主要介绍了Docker如何安全地进入到容器内部,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Docker网络原理及自定义网络详细解析

    Docker网络原理及自定义网络详细解析

    一般使用自定义网络,自定义网络使用network创建,创建时可以指定子网网段及网关等信息,在创建并启动容器时指定使用的网络,今天通过本文给大家介绍Docker网络原理及自定义网络的相关知识,感兴趣的朋友一起看看吧
    2021-05-05
  • CentOS 7.x docker使用overlay2存储方式

    CentOS 7.x docker使用overlay2存储方式

    这篇文章主要介绍了CentOS 7.x docker使用overlay2存储方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 3分钟带你学会docker搭建帕鲁服务器

    3分钟带你学会docker搭建帕鲁服务器

    幻兽帕鲁已经正式开服,目前在线人数已经超过7W+,很多玩家想自己创建服务器和朋友一起联机游玩,本文主要介绍了3分钟带你学会docker搭建帕鲁服务器,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • 使用docker -v 和 Publish over SSH插件实现war包自动部署到docker的操作步骤

    使用docker -v 和 Publish over SSH插件实现war包自动部署到docker的操作步骤

    这篇文章主要介绍了利用docker -v 和 Publish over SSH插件实现war包自动部署到docker的操作步骤,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-01-01
  • win7环境下Docker快速构建及阿里云容器加速配置详解

    win7环境下Docker快速构建及阿里云容器加速配置详解

    这篇文章主要介绍了win7环境下Docker快速构建及阿里云容器加速配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09

最新评论