网站搜索

如何在 Linux 中的 Docker 容器中安装 Apache


如果您是一名为开发人员提供支持的 Linux 系统管理员,您很可能听说过 Docker。如果没有,该软件解决方案将从今天开始帮助您降低运营成本并加速部署,从而让您的生活变得更轻松,还有其他好处。

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

换句话说,无论安装在何处,容器化软件都可以一致地运行和管理。此外,容器比旧的虚拟机更容易设置、启动、停止和维护。

如果您有兴趣了解更多关于这两种技术之间的差异,Docker 官方网站提供了很好的解释。

为了说明这一点,在本文中我们将解释如何在 CentOS/RHELRocky/Alma LinuxDebian/ 上安装 Docker Ubuntu,并从 Docker Hub 启动 Apache 2.4 容器。

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

在 Linux 上安装 Docker

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

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

接下来,使用 systemctl 命令启动主 Docker 服务,使其能够在重新启动期间启动,并检查其状态。

systemctl start docker
systemctl enable 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 提供一个简单的网页。

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

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

此时,我们的 Apache 容器应该已启动并正在运行。

sudo docker ps

现在让我们在 /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 linux-console.net</title>
</head>
<body>
    <h1>Learn Docker With Us</h1>   
</body>
</html>

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

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

sudo docker stop tecmint-web

并删除它:

sudo docker rm tecmint-web

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

sudo docker image remove httpd:2.4

请注意,在上述所有步骤中,我们无需在主机上安装网络服务器。

概括

在本文中,我们解释了如何安装Docker和操作容器。不幸的是,这些只是基础知识——还有完整的课程、书籍和认证考试,更深入地涵盖了Docker(以及一般的容器)。

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

  • 在 CentOS 和 RHEL 中安装 Docker 并学习基本的容器操作
  • 如何在 CentOS/RHEL 上的 Docker 容器中部署和运行应用程序
  • 在 CentOS/RHEL 上使用 Dockerfile 自动构建和配置 Docker 映像
  • 如何删除 Docker 映像、容器和卷

将此作为您的起点,如果您有任何问题或意见,请告诉我们 - 我们期待您的来信!