如何在Docker容器中设置简单的Apache Web服务器

在本文中,我们将介绍如何在CentOS 7和Ubuntu 16.04上安装Docker,并从Docker Hub启动Apache 2.4容器。

如果您是为开发人员提供支持的Linux系统管理员,您可能听说过Docker 如果没有,这个软件解决方案将帮助您降低运营成本并加快部署,让您的工作变得更轻松。

但这不是魔术。 作为平台的Docker利用容器 - 应用程序包以及运行所需的所有工具来消除环境之间的差异。

换句话说,无论容器安装在何处,容器化软件都可以运行,并且可以一直进行管理。 另外,容器的设置,启动,停止和维护比旧的虚拟机容易得多。 如果您有兴趣了解这两种技术之间的差异, Docker官方网站提供了一个很好的解释。

为了演示,在本文中,我们将解释如何在CentOS 7Ubuntu 16.04上安装Docker ,并从Docker Hub启动Apache 2.4容器。

然后,我们将使用它来从我们的主目录提供一个简单的网页 - 所有这些都不需要在我们的主机上安装Web服务器。

在CentOS和Ubuntu上安装Docker

首先,让我们使用以下命令安装Docker 这将下载并运行一个shell脚本,该脚本会将Docker存储库添加到我们的系统并安装该软件包。

# curl -fsSL https://get.docker.com | sh

接下来,使用systemctl命令启动主要的Docker服务并检查其状态。

# systemctl start docker
# systemctl status docker

在这一点上,我们可以简单地执行。

# docker

查看可用命令的列表或获得帮助。

# docker COMMAND --help
# docker ps --help

将告诉我们如何列出我们系统中存在的容器,然而

# docker run --help

将打印我们可以用来操纵容器的所有选项。

设置Apache容器

Docker生态系统的一个惊人之处是,有几十个标准容器可以轻松下载和使用。 在下面的例子中,我们将实例化一个名为howtoing-webApache 2.4容器,从当前终端分离。 我们将使用来自Docker Hub的名为httpd:2.4的映像。

我们的计划是要求将我们在8080端口上公开的IP地址的请求重定向到容器上的端口80 另外,我们不会从容器本身提供内容,而是从/ home / user / website提供简单的网页。

我们通过在容器上的/ usr / local / apache2 / htdocs /映射/ home / user / website /来执行此操作。 请注意,您需要使用sudo或以root身份登录才能继续,并且不要忽略每个目录末尾的正斜杠。

# sudo docker run -dit --name howtoing-web -p 8080:80 -v /home/user/website/:/usr/local/apache2/htdocs/ httpd:2.4

在这一点上,我们的Apache容器应该启动并运行。

$ sudo docker ps
检查Apache Docker容器

检查Apache Docker容器

现在让我们在/ home / user / website目录中创建一个名为docker.html的简单网页。

# vi /home/user/website/docker.html

将以下示例HTML内容添加到文件。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Learn Docker at Howtoing.com</title>
</head>
<body>
<h1>Learn Docker With Us</h1>   
</body>
</html>

接下来,将您的浏览器指向AAA.BBB.CCC.DDD:8080 / docker.html (其中AAA.BBB.CCC.DDD是您主机的公共IP地址)。 您应该看到我们之前创建的页面。

检查Apache页面

检查Apache页面

如果你愿意,你现在可以停止容器。

$ sudo docker stop howtoing-web

并删除它:

$ sudo docker rm howtoing-web

要完成清理,您可能需要删除容器中使用的图像(如果您计划尽快创建其他Apache 2.4容器,请忽略此步骤)。

$ sudo docker image remove httpd:2.4

请注意,在上述所有步骤中,我们从未必须在我们的主机上安装Web服务器。

概要

在本文中,我们解释了如何安装Docker并操作容器。 不幸的是,这些只是基础知识 - 整个课程,书籍和认证考试都涵盖了Docker(以及一般的容器)。

如果您想了解有关Docker的更多信息,我们已经介绍了3篇系列文章,它解释了如何安装Docker,将应用程序运行到容器中以及使用dockerfile自动构建docker映像。

  1. 在CentOS和RHEL 7/6中安装Docker并学习基本的容器操作
  2. 如何在CentOS / RHEL 7/6上将应用程序部署并运行到Docker容器中
  3. 在CentOS / RHEL 7/6上使用Dockerfile自动构建和配置Docker镜像

以此为出发点,让我们知道您是否有任何问题或意见 - 我们期待您的回音!