我的 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
一切都工作正常,除了每次我想更改容器时,我都会停止服务,运行docker-compose up
以创建容器,然后启动服务,我忘记up
已经启动了容器。
我可以围绕这个调整我的脚本以在运行后停止容器docker-compose
,但是启动/关闭需要时间,我想知道是否有一种方法可以只创建容器而不启动它(命令build
只是构建,up
根据构建创建启动它的帮助)?
答案1
docker compose 的源已经有一个create
命令,但它还没有出现在 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
然后您可以停止使用systemctl stop ...
,更改docker-compose.yml
文件,然后开始使用systemctl start ...
。但我不确定如果组合设置中的容器之一出现故障,是否可以正确重新启动。