如何設置Apache Docker容器

如果您是Docker和容器的新手,那麼設置Apache Docker容器是一個很好的開始。由於其輕量級技術和安全性,使用Docker創建應用程序具有巨大的好處。

在本教程中,您將學習如何在Ubuntu上設置Apache Docker容器。使用本教程來學習如何開始使用Docker並擁有Apache Web服務器!

先決條件

如果您希望一步一步地跟隨教程,請確保您擁有以下條件:在本教程中安裝了Docker的Ubuntu 14.04.4 LTS或更高版本的機器。本教程使用的是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注册表下载Docker镜像到本地机器。
docker pull httpd

下图显示了从Docker Hub拉取镜像的预期结果。

Pulling the Apache image from Docker Hub

3. 接下来,运行docker images命令以列出计算机上所有可用的镜像,确认已下载该镜像。

# 检查Docker镜像
docker images

如下所示,您现在有一个Docker镜像,即从Docker Hub下载的镜像。

Checking the Docker images

使用Docker命令运行Apache容器。

在前一節中,您從Docker Hub下載了Docker映像。現在您可以根據該映像創建一個容器。要運行Apache容器,您需要運行以下Docker命令:

1. 調用docker run命令,根據您下載的Apache Docker映像創建一個新的容器。

# 執行名為docker-apache的新Docker容器(--name)
# 將本地計算機的端口80映射到容器的端口80(-p 80:80)
# 在分離模式下運行(-d)
# 使用Apache映像
docker run -d --name docker-apache -p 80:80 -d httpd

然後,docker run命令將返回您剛剛創建的容器的唯一容器ID。將此容器ID保存在下面突出顯示的框中,以便將來如果您希望刪除或移除該容器。

Running a new Docker container using an Apache image

2. 一旦Apache容器運行,請使用網頁瀏覽器訪問公共IP地址:80,以驗證是否可以訪問Apache網絡界面。如果您能看到與下面一樣的消息,那麼您已成功啟動Apache Docker容器。

請確保Ubuntu 14.04.4 LTS機器在安全組中允許入站端口80。

Accessing the Apach

3. 最后,通过运行下面的docker stop命令停止容器,如果你不再需要它运行。该命令会优雅地停止容器实例。

# 停止ID为aaaee64a4512的容器,请确保将容器ID的值更改为你自己的。
# 注意:指定容器ID的前12个字符即可。
docker stop aaaee64a4512

或者,你也可以通过在docker stop命令中指定容器的名称(docker stop docker-apache)来停止正在运行的容器。

使用Docker文件运行Apache Docker容器

在前一节中,你学习了如何通过运行默认的httpd Docker镜像来启动Apache Docker容器。如果你需要更新基础镜像以显示不同的内容或将其公开在不同的端口上,该怎么办?

使用Docker文件部署容器可以在你在不同操作系统上测试相同设置时,省去手动创建镜像的步骤。Docker文件方法是Docker镜像的自动化脚本。

让我们创建一个Docker文件并从中运行一个容器。

1. 创建一个名为~/apache-server-docker-demo的文件夹,然后将工作目录切换到该文件夹。

mkdir ~/apache-server-docker-demo
cd ~/apache-server-docker-demo

2. 創建另一個文件,將下面的配置複製/粘貼並將文件保存為index.html,保存在~/apache-server-docker-demo目錄中。該index.html文件是一個HTML頁面,一旦容器啟動,將顯示本教程將教您如何在Docker中運行Apache容器,您稍後將在本課程中看到。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>This tutorial will teach how to Run Apache container in docker .</title>
</head>
<body>
    <h1>This tutorial will teach how to Run Apache container in docker , lets GO!</h1>
</body>
</html>

3. 創建另一個文件,將下面的配置複製/粘貼並將文件保存為Docker file,保存在~/apache-server-docker-demo目錄中。完成後,Docker將使用此DockerFile運行所有必要的命令來在任何基礎映像的頂部構建新的Docker映像。

下面的DockerFile包含了構建Apache容器的各種步驟/指令:

  • Maintainer Maintainer指令提供了關於管理此文件的作者的信息。
  • FROM FROM指令初始化一個新的構建階段並為後續指令設置基礎映像。在下面的代碼片段中,centos:7是基礎映像。
  • COPY COPY命令將文件從主機(Docker主機)複製到容器中。您之前在Docker主機上創建的index.html將被複製到容器的/var/www/html目錄中。
  • EXPOSEEXPOSE指令告知Docker容器在运行时监听指定的网络端口。Apache Web服务器默认在端口80上进行监听。
# Dockerfile指令,在基础镜像(httpd)之上创建新镜像
FROM httpd:2.4
MAINTAINER [email protected]
COPY index.html /var/www/html/
EXPOSE 80

4. 接下来,通过运行tree命令验证文件夹中的所有所需文件。

Verify all the required files

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

# 构建Docker镜像
sudo docker build  -t apache-server:v1 .
build the image by running the docker build command

当Docker构建运行时,它返回各种属性。您将看到其中一个属性是REPOSITORY。REPOSITORY名称为apache-server,镜像带有版本v1的标签,如下所示。

Repository Attributes

6. 最后,通过运行docker run命令使用新构建的镜像运行Apache容器。

p标志将容器的端口发布到主机,即80:80-it标志指示Docker分配一个与容器的标准输入关联的伪终端

# 使用新构建的镜像运行Apache容器
docker run -it -p 80:80 apache-server:v1

7. 最後,使用網頁瀏覽器前往 公有 IP 位址:80 驗證是否能夠存取 Apache 網頁介面。由於您已建立 index.html 檔案並在 Docker 啟動時將其複製到容器中,您將在網頁介面上看到此訊息。

verify if you can access the Apache web interface

結論

本教學旨在協助您設置使用 Docker 映像的 Apache Docker 容器的過程。您學會了如何使用 Docker 檔案來啟動 Apache 容器,您可以編輯和構建自定義容器。

那麼,您打算在 Apache 伺服器 Docker 映像上構建什麼?

Source:
https://adamtheautomator.com/apache-docker/