Docker Compose to Orchestrate Containers 展示了如何使用 Docker Compose 运行两个链接的 Docker 容器。 使用 Docker Swarm 集群 展示了如何配置 Docker Swarm 集群。
此博客将展示如何在 Docker Swarm 集群中运行使用 Docker Compose 创建的多容器应用程序。
Docker Compose 和 Docker Swarm 的更新版本与 Docker 1.7.0 一起发布。
Docker 1.7.0 命令行界面
获取最新的 Docker CLI:
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
并将版本检查为:
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
Docker 机器 0.3.0
获取最新的 Docker Machine 作为:
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
并将版本检查为:
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
码头工人组成 1.3.0
获取最新的 Docker Compose 为:
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
并将版本验证为:
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
码头群 0.3.0
Swarm 作为 Docker 容器运行,可以下载为:
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
您可以在 docs.docker.com/swarm 上了解 Docker Swarm 或 使用 Docker Swarm 进行集群 。
创建 Docker Swarm 集群
Docker Swarm 的关键组件如下图所示:
并在 Clustering Using Docker Swarm 中进行了解释。
-
开始使用 Swarm 的最简单方法是使用官方 Docker 镜像:
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
此命令返回一个发现令牌,在本文档中称为 <TOKEN>,并且是唯一的集群 ID。后面创建master和node的时候会用到。此集群 ID 由 Docker Hub 上的托管发现服务返回。它将输出显示为:
最后一行是 <TOKEN>。确保现在记下此集群 ID,因为以后无法列出它。这应该用 #661 修复。curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
-
Swarm 与 Docker Machine 完全集成,因此是最简单的入门方式。接下来让我们创建一个 Swarm Master:
将curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
<TOKEN>
替换为上一步中获取的集群 ID。--swarm
将机器配置为 Swarm,--swarm-master
将创建的机器配置为 Swarm master。 Swarm master 创建与 Docker Hub 上的托管服务对话,并通知集群中创建了一个 master。 -
连接到这个新创建的 master 并找到一些关于它的更多信息:
这会将输出显示为:curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
-
创建 Swarm 节点
将curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
<TOKEN>
替换为前面步骤中获得的集群 ID。节点创建与 Docker Hub 上的托管服务对话并加入先前创建的集群。这由--swarm-discovery token://...
指定并指定先前获得的集群 ID。 -
为了使它成为一个真正的集群,让我们创建第二个节点:
将curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
<TOKEN>
替换为上一步中获取的集群 ID。 -
列出目前创建的所有节点:
这显示了类似于下面的输出:curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
作为集群一部分的机器在 SWARM 列中具有集群的名称,否则为空白。例如,“lab”和“summit2015”是独立的机器,而所有其他机器都是“swarm-master”集群的一部分。 Swarm 主节点在 SWARM 列中也由 (master) 标识。curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
-
连接到 Swarm 集群并找到有关它的一些信息:
这将输出显示为:curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
有 3 个节点——一个 Swarm master 和 2 个 Swarm 节点。这个集群中总共运行了 4 个容器——master 和每个节点上有一个 Swarm agent,另外还有一个 swarm-agent-master 在 master 上运行。curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
-
使用以下命令列出集群中的节点:
这将输出显示为:curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
使用 Docker Compose 将 Java EE 应用程序部署到 Docker Swarm 集群
Docker Compose to Orchestrate Containers 解释了如何使用 Docker Compose 轻松启动多容器应用程序。
-
使用
该博客
中解释的
docker-compose.yml
文件启动容器:
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
docker-compose.yml
文件如下所示:
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
-
检查集群中运行的容器为:
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
将输出视为:
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
-
“swarm-node-02”正在运行三个容器,所以让我们看一下在那里运行的容器列表:
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
并查看正在运行的容器列表:
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
-
然后可以使用以下方式再次访问应用程序:
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
并将输出显示为:
curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker
此设置的最新说明始终位于: github.com/javaee-samples/docker-java/blob/master/chapters/docker-swarm.adoc 。