如何在Ubuntu 16.04上安装Docker Compose

介绍

Docker是自动化软件容器内的Linux应用程序的部署一个伟大的工具,而是要充分利用应用程序的其潜在的各组分应在其自己单独的容器中运行。对于具有大量组件的复杂应用程序,协调所有容器以启动,通信和一起关闭可能很快变得笨重。 Docker社区想出了一个叫做流行的解决方案  fig ,它允许您使用一个YAML文件,以协调所有的Docker容器和配置。 这成为如此受欢迎,Docker团队决定基于图源,现在已不建议在做 Docker撰写 。 Docker Compose使用户更容易协调Docker容器的进程,包括启动,关闭和设置容器内链接和卷。 在本教程中,我们将向您展示如何安装Docker Compose,这是一个帮助您管理多容器应用程序的工具。

先决条件

要跟随这篇文章,你将需要一个Ubuntu 16.04服务器与以下: 一旦这些都到位,你就准备好跟随。 注意:即使先决条件给出了在Ubuntu 16.04安装Docker指令, docker在这篇文章中的命令应该只要安装Docker上的其他操作系统的工作。

第1步 - 安装Docker Compose

我们将从Docker GitHub存储库安装Docker Compose开始。下面的命令是一个比你会发现上略有不同的 发布页面。 通过使用 -o标志指定输出文件里,而不是重定向输出,此语法避免运行到许可使用时,引起拒绝错误 sudo 。 我们会检查 当前版本 ,如果有必要,在下面的命令更新:
sudo curl -o /usr/local/bin/docker-compose -L "https://github.com/docker/compose/releases/download/1.8.1/docker-compose-$(uname -s)-$(uname -m)"
接下来,我们将设置权限:
sudo chmod +x /usr/local/bin/docker-compose
然后,我们将通过检查版本来验证安装是否成功:
docker-compose -v
这将打印当前版本:
Outputdocker-compose version 1.8.1, build 878cff1
现在我们已经安装了Docker Compose,我们准备好运行一个“Hello World”示例。

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

公众Docker注册表,Docker中心,包括演示和测试一个 Hello World的形象。它说明了使用Docker Compose运行容器所需的最少配置:调用单个映像的YAML文件: 首先,我们将创建一个YAML文件的目录并移动到它:
mkdir hello-world
cd hello-world
然后,我们将创建YAML文件:
nano docker-compose.yml
将以下内容放入文件,保存文件,然后退出文本编辑器:
docker-compose.yml
my-test:
 image: hello-world
YAML文件中的第一行用作容器名称的一部分。第二行指定用于创建容器的图像。当我们运行命令 docker-compose up它会寻找由我们指定名称的局部图像 hello-world 。有了这个,我们将保存并退出文件。 我们可以在我们的系统上的图像手动查找 docker images的命令:
docker images
当根本没有本地图像时,只有列标题显示:
OutputREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
现在,同时还在 ~/hello-world目录,我们将执行以下命令:
docker-compose up
我们第一次运行这个命令,如果没有本地图像命名 hello-world ,Docker撰写将会将其从Docker Hub公共仓库:
OutputPulling 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 up1. 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容器不会上市,因为它没有运行。
docker ps
OutputCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
我们可以看到容器的信息,我们将需要在接下来的步骤,通过使用 -a标志,显示了所有容器,而不仅仅是活跃的:
docker ps -a
OutputCONTAINER 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或名称。 下面,我们正在使用从容器ID docker ps -a我们只是跑命令。请务必替换容器的ID:
docker rm 06069fd5ca23
一旦删除了引用该图片的所有容器,我们就可以删除该图片:
docker rmi hello-world

结论

我们现在已经安装了Docker Compose,通过运行Hello World示例测试我们的安装,并删除了测试映像和容器。 虽然Hello World示例确认了我们的安装,但是简单的配置并没有显示Docker Compose的一个主要优点 - 能够同时使一组Docker容器上下移动。要查看Docker撰写的行动力,你可能想看看这个实际的例子, 如何在Ubuntu 16.04与Docker和Docker撰写配置持续集成测试环境
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏