【问题标题】:Correct approach in deploying stack to Docker for AWS将堆栈部署到 Docker for AWS 的正确方法
【发布时间】:2017-09-05 08:42:15
【问题描述】:

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

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

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

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

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

谢谢

【问题讨论】:

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


    【解决方案1】:

    找到了一种或多或少正确的方法(根据 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

    【讨论】:

      【解决方案2】:

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

      1. 使用 Jenkins,然后有一个名为 publish over SSH 的插件。您可以使用此插件发送您的撰写文件,然后运行“docker stack deploy”之类的命令。More description can be found here
      2. 您可以使用 Docker 云将您的 swarm 带到您的本地终端,类似于您已经完成的操作。关注这个link

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

      希望对你有帮助!!

      【讨论】:

        猜你喜欢
        • 2023-03-24
        • 2013-08-25
        • 2018-02-16
        • 2011-05-13
        • 2017-09-30
        • 2018-10-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-23
        相关资源
        最近更新 更多