gpt4 book ai didi

linux - 如何使用 CoreOS 的云配置文件启动 Docker 容器?

转载 作者:可可西里 更新时间:2023-11-01 09:29:07 26 4
gpt4 key购买 nike

我正在尝试使用 Terraform 配置我的 CoreOS 服务器,使用 cloud-config file for CoreOS .我目前正在尝试在 Docker 容器中设置 Mongo 数据库。这是我的配置文件:

write_files:
- path: "/home/core/keyfile"
permissions: "0600"
owner: "999"
content: |
hUoQVrERB0*** <here is my key for MongoDB>

coreos:
units:
- name: "dockerstart.service"
command: "start"
content: |
[Unit]
Description=Start
Author=Me

[Service]
Restart=always
ExecStart=/usr/bin/docker run --name mongo -v /home/core:/opt --add-host node1.example.com:127.0.0.1 -p 27017:27017 -d mongo:2.6.5 --smallfiles --keyFile /opt/keyfile --replSet "rs0"
ExecStop=/usr/bin/docker rm -f mongo

我不确定如何使用 coreOS units(当我通过 ssh 进入服务器时,docker 容器没有运行,所以配置文件不正确)。根据CoreOS Validator ,我的文件有效。另外,我不确定这是否是部署 MongoDB 服务器的最简单方法。如何正确使用 CoreOS units?关于改进 Mongo 数据库部署方式的任何想法?

感谢任何帮助、意见和建议!

最佳答案

我终于找到了解决方案。

实际运行带有 -d 选项的 docker run 会守护命令。因此,当 systemd 发现此操作在后台运行时,它认为 Docker 正在崩溃。

这是服务器上的 journalctl -u dockerstart.service 结果:

docker[1237]: ace3978442a729420ecb87af224bd146ec6ac7912c5cc452570735f4a3be3a79
docker[1297]: mongo
systemd[1]: dockerstart.service: Service hold-off time over, scheduling restart.
systemd[1]: Stopped Start.
systemd[1]: Started Start.

这里可以清楚的看到systemd停止并重启了Start服务。

因此解决方案可能是docker run 命令中删除 -d

关于linux - 如何使用 CoreOS 的云配置文件启动 Docker 容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39877548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com