我有一个环境,该环境使用通过ansible的docker_container模块启动的容器的组合,有些通过通过彼此依赖的docker-compose进行启动。
当我运行sudo service docker stop
并运行sudo service docker start
之后,出现了ansible托管容器,但没有docker-compose托管容器。在docker-compose文件中,我使用的是restart_policy:on-failure,在其他情况下(例如系统重启),该命令非常有用。另一件事是,一旦我再次运行docker-compose up -d
(在docker引擎重启后),重启docker引擎将在重启后适当地启动容器。供参考,这是我的docker撰写文件:
docker-compose.yml
version: '2.2'
services:
app1:
extends:
file: docker-compose.yml-base
service: app1
app2:
extends:
file: docker-compose.yml-base
service: app2
app3:
extends:
file: docker-compose.yml-base
service: app3
app4:
extends:
file: docker-compose.yml-base
service: app4
docker-compose.yml-base:
version: '2.2'
services:
app1:
image: repo1/app1:${CLOUD_VERSION}
network_mode: "host"
restart: on-failure
environment:
- NODE_ENV=production
- CLOUD_DIR=cloud
- CONFIG_DIR=config
command: /opt/app1/start.sh
app2:
image: repo2/app2:${CLOUD_VERSION}
network_mode: "host"
restart: on-failure
environment:
- NODE_ENV=production
- CLOUD_DIR=cloud
- CONFIG_DIR=config
command: /opt/app2/start.sh
app3:
image: repo3/app3:${CLOUD_VERSION}
network_mode: "host"
restart: on-failure
environment:
- NODE_ENV=production
- CLOUD_DIR=cloud
- CONFIG_DIR=config
command: /opt/app3.sh
app4:
image: repo4/app4:${CLOUD_VERSION}
network_mode: "host"
restart: on-failure
environment:
- NODE_ENV=production
docker版本统计:
Client:
Version: 18.03.1-ce
API version: 1.37
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:17:20 2018
OS/Arch: linux/amd64
Experimental: false
Orchestrator: swarm
Server:
Engine:
Version: 18.03.1-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:15:30 2018
OS/Arch: linux/amd64
Experimental: false
docker-compose统计信息:
docker-compose version 1.25.5, build 8a1c60f6
docker-py version: 4.1.0
CPython version: 3.7.5
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
服务器运行ubuntu 16.04