0

我正在尝试将基于 docker-compose 的堆栈部署到 Docker for AWS(通过 AWS CloudFormation 创建)。

我的 compose YAML 文件在 Git 存储库和私有注册表 (Gitlab) 中的 Docker 映像中进行管理。

与 Manager 合作部署服务的正确方法是什么?

我尝试了(但失败了)几种方法:

  1. 无法通过 Docker API 使用本地 Docker 客户端,因为 AWS 管理器节点的 Docker 未打开 2375 端口。
  2. 无法将编写 YAML 和环境文件直接同步到管理器节点,因为rsync它没有安装在 Amazon Docker AMI 上。
  3. 从 Gitlab 卷曲文件似乎是一种非常不方便的方式。

谢谢

4

2 回答 2

0

找到了一种或多或少正确的方法(根据 Swarm 文档中的一些评论):

创建到管理器的 SSH 隧道: $ ssh -NL localhost:2374:/var/run/docker.sock docker@<manager ip> &

在本地运行一切 $ docker -H localhost:2374 info

或定义 export DOCKER_HOST=localhost:2374

如果您在 Swarm 管理器上运行,请像您一样使用 docker $ docker info

于 2017-09-05T15:38:22.670 回答
0

在我看来,您可以尝试 2 个选项

  1. 使用 Jenkins,然后有一个名为 publish over SSH 的插件。您可以使用此插件发送您的撰写文件,然后运行诸如“docker stack deploy”之类的命令。更多描述可以在这里找到
  2. 您可以使用 Docker 云将您的 swarm 带到您的本地终端,类似于您已经完成的操作。按照这个链接

第一种方法要好得多,因为您已经自动化了部署,现在您可以安排部署,单击按钮甚至提交时运行它。

希望能帮助到你 !!

于 2017-09-07T08:36:00.240 回答