将堆栈部署到Docker for AWS

时间:2017-09-05 08:42:16

标签: amazon-web-services docker docker-compose docker-swarm-mode

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

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

使用Manager部署服务的正确方法是什么?

我试过(并且失败了)几种方法:

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

在我看来,您可以尝试两种选择

  1. 使用Jenkins然后有一个名为publish over SSH的插件。您可以使用此插件发送您的撰写文件,然后运行&#34; docker stack deploy&#34;。More description can be found here
  2. 等命令。
  3. 您可以使用Docker云将您的swarm带到本地终端,类似于您已经完成的工作。请遵循此link
  4. 第一种方法更好,因为您已经自动部署,现在您可以安排部署,单击按钮甚至提交时运行它。

    希望它有所帮助!!