如何在 Ubuntu 16.04 上安装 Docker Compose如何在 Ubuntu 16.04 上安装 Docker Compose如何在 Ubuntu 16.04 上安装 Docker Compose如何在 Ubuntu 16.04 上安装 Docker Compose
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 16.04 上安装 Docker Compose

介绍

Docker 是在软件容器内自动部署 Linux 应用程序的绝佳工具,但要充分利用其潜力,应用程序的每个组件都应在其自己的容器中运行。对于具有大量组件的复杂应用程序,编排所有容器一起启动、通信和关闭很快就会变得笨拙。

Docker 社区提出了一个名为 Fig 的流行解决方案,它允许您使用单个 YAML 文件来编排所有 Docker 容器和配置。这变得如此流行,以至于 Docker 团队决定根据 Fig 源制作 Docker Compose,该源现已弃用。 Docker Compose 使用户可以更轻松地编排 Docker 容器的进程,包括启动、关闭以及设置容器内链接和卷。

在本教程中,我们将向您展示如何安装最新版本的 Docker Compose 以帮助您管理多容器应用程序。

先决条件

要阅读本文,您需要一台 Ubuntu 16.04 服务器,其中包含以下内容:

  • 具有 sudo 权限的非根用户(Ubuntu 16.04 的初始服务器设置说明了如何进行设置。)
  • 按照如何在 Ubuntu 16.04 上安装和使用 Docker 的第 1 步和第 2 步中的说明安装 Docker

一旦这些就绪,您就可以跟进了。

注意:尽管先决条件给出了在 Ubuntu 16.04 上安装 Docker 的说明,但只要安装了 Docker,本文中的 docker 命令应该可以在其他操作系统上运行。

第 1 步 — 安装 Docker Compose

虽然我们可以从官方 Ubuntu 存储库安装 Docker Compose,但它比最新版本落后了几个小版本,所以我们将从 Docker 的 GitHub 存储库安装 Docker Compose。下面的命令与您在发布页面上找到的命令略有不同。通过使用 -o 标志首先指定输出文件而不是重定向输出,此语法避免遇到使用 sudo 时导致的权限被拒绝错误。

我们将检查当前版本,如有必要,在以下命令中更新它:

  1. sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

接下来我们将设置权限:

  1. sudo chmod +x /usr/local/bin/docker-compose

然后我们将通过检查版本来验证安装是否成功:

  1. docker-compose --version

这将打印出我们安装的版本:

Output
docker-compose version 1.18.0, build 8dd22a9

现在我们已经安装了 Docker Compose,我们准备运行一个“Hello World”示例。

第 2 步 — 使用 Docker Compose 运行容器

公共 Docker 注册表 Docker Hub 包含一个用于演示和测试的 Hello World 图像。它说明了使用 Docker Compose 运行容器所需的最低配置:一个调用单个图像的 YAML 文件:

首先,我们将为 YAML 文件创建一个目录并移入其中:

  1. mkdir hello-world
  2. cd hello-world

然后,我们将创建 YAML 文件:

  1. nano docker-compose.yml

将以下内容放入文件中,保存文件,退出文本编辑器:

my-test:
 image: hello-world

YAML 文件中的第一行用作容器名称的一部分。第二行指定要使用哪个图像来创建容器。当我们运行命令 docker-compose up 时,它将通过我们指定的名称 hello-world 查找本地图像。有了这个,我们将保存并退出文件。

我们可以使用 docker images 命令手动查看系统上的图像:

  1. docker images

当根本没有本地图像时,仅显示列标题:

Output
REPOSITORY TAG IMAGE ID CREATED SIZE

现在,仍然在 ~/hello-world 目录中,我们将执行以下命令:

  1. docker-compose up

第一次运行命令时,如果没有名为 hello-world 的本地镜像,Docker Compose 将从 Docker Hub 公共存储库中拉取它:

Output
Pulling my-test (hello-world:latest)... latest: Pulling from library/hello-world c04b14da8d14: Downloading [==================================================>] c04b14da8d14: Extracting [==================================================>] c04b14da8d14: Extracting [==================================================>] c04b14da8d14: Pull complete Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9 Status: Downloaded newer image for hello-world:latest . . .

拉取镜像后,docker-compose 创建一个容器,附加并运行 hello 程序,这反过来确认安装似乎正在运行:

Output
. . . Creating helloworld_my-test_1... Attaching to helloworld_my-test_1 my-test_1 | my-test_1 | Hello from Docker. my-test_1 | This message shows that your installation appears to be working correctly. my-test_1 | . . .

然后它打印它做了什么的解释:

Output of docker-compose up
1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.

Docker 容器仅在命令处于活动状态时运行,因此一旦 hello 完成运行,容器就会停止。因此,当我们查看活动进程时,会出现列标题,但不会列出 hello-world 容器,因为它没有运行。

  1. docker ps
Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

我们可以使用 -a 标志来查看下一步需要的容器信息,该标志显示所有容器,而不仅仅是活动容器:

  1. docker ps -a
Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 06069fd5ca23 hello-world "/hello" 35 minutes ago Exited (0) 35 minutes ago drunk_payne

这会显示我们在完成处理后删除容器所需的信息。

第 3 步 — 删除图像(可选)

为避免使用不必要的磁盘空间,我们将删除本地映像。为此,我们需要使用 docker rm 命令删除所有引用图像的容器,后跟容器 ID 或名称。下面,我们使用刚刚运行的 docker ps -a 命令中的 CONTAINER ID。请务必替换容器的 ID:

  1. docker rm 06069fd5ca23

删除所有引用图像的容器后,我们可以删除图像:

  1. docker rmi hello-world

结论

我们现在已经安装了 Docker Compose,通过运行 Hello World 示例测试了我们的安装,并删除了测试图像和容器。

虽然 Hello World 示例确认了我们的安装,但简单的配置并未显示 Docker Compose 的主要优势之一——能够同时启动和关闭一组 Docker 容器。要了解 Docker Compose 的强大功能,您可能想看看这个实际示例,如何在 Ubuntu 16.04 上使用 Docker 和 Docker Compose 配置持续集成测试环境

©2015-2025 艾丽卡 support@alaica.com