我想知道生产中的docker容器部署有哪些选项。鉴于我有单独的APP和DB服务器容器以及仅包含可部署和其他数据库文件的数据容器。
我现在只有一台服务器,我希望“docker enable”,但是在那里部署的最佳方式是什么(远程将是最好的选择)
我只想点击一个按钮,一些工具将负责停止,启动,交换所有需要的docker容器。
有无数的工具(Fleet,Flocker,Docker Compose等),我对这些选择感到不知所措。
我唯一清楚的是,我不想使用git repo的代码构建图像。我想将docker镜像作为我的发行版的包装器。我是否从错误的结局中抓住了码头工人的想法?
答案 0 :(得分:1)
我的团队最近构建了一个Docker持续部署系统,我想我会在这里分享它,因为你似乎有同样的问题。它几乎做了你问的问题: “按下一个按钮,一些工具将负责停止,启动,交换所有需要的泊坞容器”
我们遇到的挑战是我们的Docker部署脚本变得过于复杂。我们的容器以各种方式相互依赖,以构建完整的系统,因此在部署时,我们经常会出现依赖性问题。
我们建立了一个名为“Skopos”的系统来解决这些问题。 Skopos会检测正在运行的系统的当前状态,并检测所做的任何更改,然后自动计划并将更新部署到生产环境中。它基于当前状态和所需状态的比较,为每个部署动态创建部署计划。
它可以帮助您使用存储库中的标记将应用程序或服务持续部署到生产环境,以自动将正确的版本推广到正确的平台,同时无需手动过程或脚本。
它是免费的,请查看:http://datagridsys.com/getstarted/
您可以通过3种方式导入系统: 1.如果你有一个Docker Compose,我们可以把它吸进去并开始工作。 2.如果您的应用程序正在运行,我们可以扫描它,然后开始使用它。 3.如果你没有,你可以在YAML中创建一个快速描述符文件,然后我们就可以了解你当前的状态。
答案 1 :(得分:0)
我认为大多数人都会使用Docker Toolbox中的工具开始他们的集装箱之旅。这些工具提供了一个良好的开端和工作的承诺,但你最终会想要更多。使用这些工具,您将缺少例如集成的覆盖网络,DNS,负载平衡,聚合日志记录,VPN访问和私有映像存储库,这些对大多数容器工作负载都至关重要。
为了解决这些问题,我们开始开发Kontena - Docker Container Orchestration Platform。虽然Kontena适用于所有类型的企业,可用于运行任何规模的集装箱化工作负载,但它最适合初创企业和中小型企业,他们需要无忧且易于使用的平台来运行集装箱化工作负载。 / p>
Kontena是一个开源项目,您可以在GitHub上查看。