我的 docker 容器是使用 docker-compose 构建的,我使用文档示例中的衍生工具在我的 CentOS 7 系统上自动启动它们:
[Unit]
Description=condb container
Requires=docker.service
After=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a condb
ExecStop=/usr/bin/docker stop -t 2 condb
[Install]
WantedBy=local.target
Run Code Online (Sandbox Code Playgroud)
一切正常,除了每次我想更改容器时,我都会停止服务,运行docker-compose up
以创建容器然后启动服务,我忘记了up
已经启动了容器。
我可以围绕这个调整我的脚本以在运行后停止容器docker-compose
,但是启动/关闭需要时间,我想知道是否有办法只创建容器而不启动它(build
命令只是构建,up
根据它的帮助)?
docker compose 的源代码已经有一个create
command,但它还没有出现在 1.5.2 中,也没有在网站上记录。您当然可以尝试从 github 源安装并获取最新(未发布)的功能。
或者,您可以尝试更改systemd
文件以不使用 启动各个容器docker
,而是在 YAML 文件上运行 docker-compose:
[Service]
Restart=always
ExecStart=/opt/util/docker-compose/bin/docker-compose -f /opt/docker/mongo/docker-compose.yml up --no-recreate
ExecStop=/opt/util/docker-compose/bin/docker-compose -f /opt/docker/mongo/docker-compose.yml stop
Run Code Online (Sandbox Code Playgroud)
然后您可以停止使用systemctl stop ...
,更改docker-compose.yml
文件,然后开始使用systemctl start ...
。但我不确定如果组合设置中的容器之一出现故障,是否可以正确重新启动。
归档时间: |
|
查看次数: |
3821 次 |
最近记录: |