docker - 我应该使用 systemd 还是 docker-compose 来保持 Docker 容器在我的系统上运行?
问题描述
我们谈论的是 Docker 容器,如 sysdig、consul、fluentd、mesos-slave 等,我们几乎在所有机器上运行。
目前我们正在使用 Ubuntu 的 Upstart 和 CoreOS 的 Fleectl。我们正在迁移到 Ubuntu 18.04 LTS,目前正在考虑是否将配置转换为:
- 系统化或
- 码头工人组成
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?
解决方案
The restart policy is built-in method to keep Docker containers running.
docker run --restart=always -d image_name
see the docs for details
推荐阅读
- java - 将 Jackson 与具有私有 Builder 的不可变类一起使用
- scala - 使用类型类时类型不匹配
- c++ - C++ 模板覆盖规则
- python-3.x - Discord.py 禁止不在我服务器中的成员
- java - AWS Lambda Java 错误:ClassNotFoundException
- python - 电报机器人 python | 类型错误:静音()缺少 1 个必需的位置参数:'args'
- r - 您可以在 R simmer 事件模拟中检查到达属性吗?
- node.js - 如何在创建集合时根据同一模型的属性设置属性?Nodejs - MongoDB
- node.js - 如何使用 nodejs 后端和 reactjs 前端和 mongodb 作为数据库使网站更加安全
- ios - 使用 UIImage(data:) 时如何释放缓存的图像?