Docker 安装和启用Apache


环境

操作系统:CentOS8 ,已安装Docker(CentOS 8 的docker安装 https://www.cnblogs.com/luyj00436/p/14515187.html)。

安装和运行步骤

  1、用命令查看可用版本。

docker search httpd

  2、获取相应的Apache镜像。这里,获取最新版本。

docker pull httpd:latest

等待安装还是需要时间的。

安装完成。

  3、 可以看到,已安装了Apache镜像。

docker images httpd

  4、打开端口8081(如果已打开,可以省略)。这里用firewarll-cmd命令(firewalls-cmd 的使用https://www.cnblogs.com/luyj00436/p/14528946.html)打开8081端口。

 1 # 1.安装firewall(已存在则跳过该步骤)。
 2 yum install firewalld 
 3 # 2. 开启firewall (已启动则跳过该步骤)。
 4 systemctl start firewalld
 5 # 或者设置开机启动。重启后,firewall仍然处于开启状态。
 6 systemctl enable firewalld
 7 # 开放端口8081,其中–permanent永久生效,如果没有这个参数,重启后失效。
 8 firewall-cmd --add-port=8081/tcp --permanent
 9 #  4.    重新载入,更新防火墙规则。
10 firewall-cmd --reload
11 # 5. 此时,8081端口已经打开,可以查看开放的端口。
12 firewall-cmd --zone=public --list-ports

  5、安装临时容器,并测试。安装临时容器的目的是为了复制配置到宿主机。

docker run -di --name httpd-test -p 8081:80 httpd

  参数说明

参数

说明

--httpd-test

容器名称。如果没有这个参数,将自动生成。

-p 8081:80

端口进行映射。将本地8081端口映射到容器内部的80端口。

也就是说,我们将使用8080访问apache

  接下来,浏览器访问测试apache,发现容器已经安装成功。

  6、创建目录apache,用于存放安装映射相关的东西。

mkdir -p  ~/apache/www ~/apache/logs ~/apache/conf 

目录映射关系

目录

说明

www

映射为 apache 容器配置的应用程序目录

Logs

映射为 apache 容器的日志目录

conf

目录里的配置文件将映射为 apache 容器的配置文件

  7、复制容器的配置文件到conf ,并删除容器。

    a)  找到运行中的http容器。

docker ps -a

    b) 复制查询到的容器id。并根据容器Id拷贝apache默认文件到本地当前目录下的conf目录。

docker cp [容器id]:/usr/local/apache2/conf/httpd.conf /root/apache/conf

    c) 删除临时容器。

1 docker stop [容器id]
2 docker rm [容器id]

  8、运行容器。

docker run --name http -p 8081:80 -v /root/apache/www/:/usr/local/apache2/htdocs/ -v /root/apache/conf/httpd.conf:/usr/local/apache2/conf/httpd.conf -v /root/apache/logs/:/usr/local/apache2/logs/ -d httpd

  参数说明:

参数

说明

--name http

容器名称。如果没有这个参数,将自动生成。

-p 8081:80

端口进行映射。将本地8081端口映射到容器内部的80端口。

也就是说,我们将使用8080访问apache

-v root/apache/www/:/usr/local/apache2/htdocs/

将目录下/root/apche/www挂载到容器的 /usr/local/apache2/htdocs/

-v /root/apache/conf/httpd.conf:/usr/local/apache2/conf/httpd.conf

将目录/root/apache/conf/httpd.conf 文件挂载到容器的 /usr/local/apache2/conf/httpd.conf

-v /root/apache/logs/:/usr/local/apache2/logs/

将目录/root/apache/logs 目录挂载到容器的 /usr/local/apache2/logs/

-d httpd

设置一个容器在后台运行。

  容器创建完成。

  查看容器是否运行。

docker ps -a

  这时候,我们能通过浏览器访问Tomcat来验证是否运行成功。

参考网址

Docker 安装Apache: https://www.runoob.com/docker/docker-install-apache.html

Docker 安装 Apache : https://blog.csdn.net/u012965203/article/details/95867342