我管理着一堆在不同机器上运行的服务。我一直在尝试让这些服务在容器内运行,一切都运行良好。接下来我想知道我是否可以有这样的设置:
短期:
让容器自动从 git 存储库构建。因此,如果我想更改/更新容器,我只需在 git 上更新它,容器就会自动更新。我的理解是,我可以设置一个持续集成系统来监控 git,然后通过某种钩子更新 docker damon。这是人们通常做的事情吗?
如果机器发生故障,容器管理系统会在另一台机器上启动容器。我查看了 Swarm,似乎他们还没有这个功能:https://github.com/docker/swarm/issues/1488 那么,面对这种情况人们目前会做什么呢?
如果一切按计划进行(容器四处移动),那么我想我可能需要某种 DNS 解析,以便连接可以路由到正确的容器。人们如何做到这一点?是否有一个容器管理系统可以处理这个问题?
长期:
- 收集有关容器的统计数据,然后将其移动到机器周围,以便将所有东西整齐地装箱。看起来 Swarm 解决了装箱部分的问题,但我必须告诉它特定容器需要多少资源:https://docs.docker.com/swarm/scheduler/strategy/有没有办法让它随着时间的推移自动运行?
答案1
对于 1,是的,根据我的经验,这很正常。我们使用 jenkins 进行持续集成。它有一个用于构建 docker 镜像的插件。maven 也有用于构建 docker 镜像的插件。我很确定应该有其他 CI 工具可以提供 docker 集成,并且可以与您的其他环境集成。