Ubuntu系统 上安装 Docker Compose的详细教程

Docker Compose 特别适合开发和测试环境,也适合小型生产部署。我们解释了如何使用 ComposeUbuntu系统上轻松编排 Docker 应用程序

Ubuntu 上的 Docker Compose 有哪些要求?

在使用Docker Compose之前,您必须确保您的系统满足以下先决条件:

  • Docker Engine:Compose 是您需要安装的 Docker Engine 的扩展。
  • 操作系统Ubuntu,具有root权限的sudo用户。

在 Ubuntu 上安装 Docker Compose 的分步指南

要在 Ubuntu 上使用 Docker Compose,您必须首先安装Docker Engine并验证其是否正常运行。Docker运行后,下载 Compose 并创建 YAML 文件来配置您的应用程序。

第 1 步:下载并安装 Docker Compose

通过在终端中输入以下命令,从官方GitHub 存储库下载最新版本的 Docker Compose:

$ curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

现在,您可以授予 Docker Compose执行权限:

$ sudo chmod +x /usr/local/bin/docker-compose

使用该--version选项检查 Compose 是否已成功安装。

$ docker-compose --version

您将得到以下输出:

Docker Compose 版本
如果看到版本号,则表明 Docker Compose 已成功安装。

如果安装失败,请检查路径。

您还可以创建到/usr/bin路径的符号链接

$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

 

步骤2:配置docker-compose.yml文件

为了演示Docker Compose YAML 文件的设计,我们使用官方 Docker Hub 中的 Nginx 镜像作为容器环境。

首先,在您的主目录中创建一个新文件夹:

$ mkdir ~/compose-test

切换到该目录并为Nginx 环境的根目录创建一个新文件夹。

$ cd ~/compose-test 
$ mkdir app

您可以使用任何文本编辑器(例如nano)来创建index.html

$ nano app/index.html

以下是示例页面的 HTML 代码:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Docker Compose Test</title>
</head>
<body>

    <h1>This is a Docker Compose Test Page for an Nginx container.</h1>

</body>
</html>

保存并关闭 HTML 文件并创建docker-compose.yml

$ nano docker-compose.yml

内容分为配置的版本号和服务块。

version: '3.9' services: web: image: nginx:alpine ports: - "8000:80" volumes: - ./app:/usr/share/nginx/html

在服务块内,有一个名为“web”的服务。它与指定的Nginx镜像和端口重定向相关联。在我们的配置中,对主机上端口 8000 发出的任何请求都会被重定向到端口 80 上的 Web 容器,其中 Nginx 正在运行。此外,我们在主机和容器之间使用共享卷。这使得 Nginx 应用程序可以访问本地“app”文件夹

第三步:执行Docker Compose

使用以下命令我们创建一个Web 容器并在后台运行容器环境:

$ docker-compose up -d

如果本地系统上不存在 YAML 文件中指定的映像,则会自动下载该映像。

输入命令测试Nginx环境是否运行ps

$ docker-compose ps

现在,当您在计算机上运行演示时,可以在localhost:8000上访问您之前创建的示例页面。如果您使用远程服务器,只需指定服务器的 IP 地址而不是“localhost”。

Docker Compose 示例页面
Nginx 容器的示例页面

您可以使用 停止容器应用程序stop

$ docker-compose stop
THE END