如果您对Docker和容器还不熟悉,那么设置Apache Docker容器是一个很好的起点。由于其轻量级技术和安全性,使用Docker创建应用程序具有巨大的优势。
在本教程中,您将学会如何在Ubuntu上设置Apache Docker容器。利用本教程,学会使用Docker并获得一个Apache web服务器!
先决条件
如果您想一步一步地跟着进行,请确保您具有以下条件,并在本教程中安装了Ubuntu 14.04.4 LTS或更高版本的机器上安装了Docker。本教程使用Ubuntu 18.04.5 LTS,带有Docker v19.03.8和公共IP地址13.213.48.113。
设置Apache Docker容器
假设您已经安装了Docker,让我们首先设置Apache容器。稍后,您将学会如何启动它。
快速启动Apache Docker容器的最简单方法之一是从官方Docker注册表Docker Hub下载现有的容器映像。在本例中,您将下载并运行一个名为Apache的Docker容器。
使用几个Docker命令,您将在短时间内运行一个Apache实例。要做到这一点,请按照以下步骤进行。
注意:本教程不涵盖深入运行Docker命令。要了解更多关于Docker命令的信息,请访问Docker命令行文档页面。
1. 在您的Ubuntu机器上打开终端。
2. 通过运行下面的docker pull
命令,下载包含Apache的Docker镜像,名为httpd
。此命令将从Docker注册表下载或拉取Apache镜像,如下所示。
下面的截图显示了从Docker Hub拉取镜像时的预期结果。

3. 接下来,通过运行下面的docker images
命令确认您已经下载了镜像,以列出计算机上所有可用的镜像。
如下所示,您现在有一个Docker镜像,这是您从Docker Hub下载的镜像。

使用Docker命令运行Apache容器。
在前面的部分,您从Docker Hub下载了Docker镜像。现在,您已准备好从该镜像创建一个容器。要运行Apache容器,您需要运行以下Docker命令:
1. 调用docker run
命令,基于您下载的Apache Docker镜像创建一个新的容器。
然后docker run
命令会返回您刚刚创建的容器的唯一容器ID。如果您希望删除或移除该容器,将该容器ID保存在下面的突出显示框中以备将来使用。

2. 一旦Apache容器正在运行,请通过在Web浏览器中导航到公共IP地址:80来验证您是否可以访问Apache Web界面。如果您能够看到与下面相同的消息,那么您已成功启动了Apache Docker容器。
确保Ubuntu 14.04.4 LTS机器在安全组中允许了入站端口80。

3. 最后,如果您不再需要运行容器,请通过运行以下docker stop
命令停止容器。此命令将优雅地停止容器实例。
或者,您还可以通过在
docker stop
命令中指定其名称(docker stop docker-apache
)来停止正在运行的容器。
使用Docker文件运行Apache Docker容器
在前一部分中,您了解了如何通过运行默认的httpd Docker镜像启动Apache Docker容器。如果您需要更新基础镜像以显示不同内容或在不同端口上公开它,该怎么办?
使用Docker文件部署容器可以在测试相同设置在不同操作系统上时省略手动创建镜像的步骤。Docker文件方法是Docker镜像的自动化脚本。
让我们创建一个Docker文件并从中运行一个容器。
1. 创建一个名为~/apache-server-docker-demo的文件夹,然后将工作目录更改为该文件夹(cd
)。
2. 创建另一个文件,复制/粘贴以下配置,并将文件保存为位于~/apache-server-docker-demo目录中的index.html。index.html文件是一个HTML页面,一旦容器启动,将显示本教程将如何在Docker中运行Apache容器的内容,您将在课程后面看到。
3. 创建另一个文件,复制/粘贴以下配置,并将文件保存为位于~/apache-server-docker-demo目录中的Docker文件。完成后,Docker将使用此DockerFile运行所有必要的命令来构建新的Docker镜像,这些命令基于任何基础镜像。
下面的DockerFile包含了构建Apache容器的各种步骤/指令:
Maintainer
– Maintainer指令提供了管理此文件的作者的信息。FROM
– FROM指令初始化一个新的构建阶段,并为后续指令设置基础镜像。在下面的代码片段中,centos:7是基础镜像。COPY
– COPY命令将文件从主机(Docker主机)复制到容器中。您之前在Docker主机上创建的index.html将被复制到容器的/var/www/html目录中。EXPOSE
– EXPOSE指令通知 Docker 在运行时监听指定的网络端口。Apache webserver 默认在Port 80
上公开。
4. 接下来,通过运行 tree
命令验证文件夹中的所有必需文件。

5. 接下来,通过运行 docker build
命令构建镜像。 t
标志用于给镜像 apache-server
打标签,版本为 v1
,.
表示当前工作目录。

docker build
command 当 Docker 构建完成时,它会返回各种属性。你会看到其中一个属性是 REPOSITORY。REPOSITORY 名称是 apache-server
,镜像带有版本 v1
,如下所示。

6. 最后,通过运行 docker run
命令运行使用新构建的镜像的 Apache 容器。
p
标志将容器的端口发布到主机,即 80:80
。 -it
标志指示 Docker 分配一个连接到容器的标准输入的 伪终端。
最后,通过在浏览器中导航至公共IP地址:80,验证是否可以访问Apache Web界面。您将在Web界面上看到此消息,因为您创建了index.html文件,并且Docker在启动时将其复制到容器中。

结论
本教程旨在帮助您完成使用Docker镜像设置Apache Docker容器的过程。您学会了如何使用Docker文件启动Apache容器,您可以编辑和构建自定义容器。
那么,在Apache服务器Docker镜像上您打算构建什么?