Docker 安装 Apache


方法一、docker pull httpd

查找 Docker Hub 上的 httpd 镜像:

可以通过 Sort by 查看其他版本的 httpd,默认是最新版本。

此外,我们还可以用 docker search httpd 命令来查看可用版本:

这里我们拉取官方的镜像

等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为httpd的镜像。

方法二、通过 Dockerfile 构建

创建 Dockerfile

首先,创建目录apache,用于存放后面的相关东西。

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

logs 目录将映射为 apache 容器的日志目录。

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

进入创建的 apache 目录,创建 Dockerfile。

Dockerfile文件中 COPY httpd-foreground /usr/local/bin/ 是将当前目录下的httpd-foreground拷贝到镜像里,作为httpd服务的启动脚本,所以我们要在本地创建一个脚本文件httpd-foreground

赋予 httpd-foreground 文件可执行权限。

通过 Dockerfile 创建一个镜像,替换成你自己的名字。

创建完成后,我们可以在本地的镜像列表里查找到刚刚创建的镜像。


使用 apache 镜像

运行容器

[!NOTE]

参数说明:

-p 6000:80: 第一个 6000 端口为主机端口,后面一个是容器端口,效果为将容器的 80 端口映射到主机的 6000 端口。

-v $PWD/www/:/usr/local/apache2/htdocs/: 将主机中当前目录下的 www 目录挂载到容器的 /usr/local/apache2/htdocs/。

-v $PWD/conf/httpd.conf:/usr/local/apache2/conf/httpd.conf: 将主机中当前目录下的 conf/httpd.conf 文件挂载到容器的 /usr/local/apache2/conf/httpd.conf。

-v $PWD/logs/:/usr/local/apache2/logs/: 将主机中当前目录下的 logs 目录挂载到容器的 /usr/local/apache2/logs/。

更详细的命令参考:Docker run 命令

查看容器启动情况:

通过浏览器访问 localhost:6000,即可看到效果。

Last updated

Was this helpful?