【发布时间】:2018-09-24 20:40:10
【问题描述】:
我们谈论的是 Docker 容器,如 sysdig、consul、fluentd、mesos-slave 等,我们几乎在所有机器上运行。
目前我们使用的是 Ubuntu 的 Upstart 和 CoreOS 的 Fleectl。我们正在迁移到 Ubuntu 18.04 LTS,目前正在考虑是否将配置转换为:
- 系统化或
- Docker-compose
Systemd 可以进行运行状况检查并自动恢复已停止运行的进程。它也与我们大量使用的 Upstart 最相似。我们的 Upstart 配置文件是从 cloud-config 生成的,如下所示:
- >
/usr/local/bin/generate-docker-upstart fluentd registry/fluentd:1.0.1
-e HOST=elasticsearch
-e PORT=9200
-e INDEX=fluentd
-e NODE=`hostname -s`
-e ROLE=app
-e ENVIRONMENT={{Ref:Environment}}
-e TENANT={{Ref:Tenant}}
-p 24224:24224
--name \$NAME \$IMAGE
我们使用 AWS CloudFormation 使虚拟机联机。
我们不能使用真正的容器编排框架(我们已经在使用 Marathon/Mesos),因为这些服务必须在每台主机上运行并且在 Marathon/Mesos 运行之前运行。
哪种解决方案最有意义?将这些文件转换为 systemd 或开始使用 docker-compose,尽管已经在 Mesos 上使用 Marathon?
【问题讨论】:
-
工具推荐请求在这里明显偏离主题,根据stackoverflow.com/help/on-topic 的“一些问题仍然偏离主题”列表中的#4。这些方法中的任何一种都可以发挥作用。您应该使用哪一个取决于回答问题的人的个人意见。 (在 systemd 中包装 Docker 实例需要一些额外的工具,而不会因 docker 和 systemd 处理 cgroup 的方式之间的交互而产生不必要的副作用,但这些工具工作得很好)。
标签: docker docker-compose systemd