我有PostgreSQL和我的应用程序的docker compose文件,如下所示:
version: '3'
services:
postgresql:
image: postgres:9.6.6
ports:
- 9932:5432
expose:
- "5432"
environment:
- POSTGRES_PASSWORD=pass
restart: always
volumes:
- /data:/var/lib/postgresql/data
myapp:
image: myapp
links:
- postgresql
depends_on:
- "postgresql"
restart: always
ports:
- "5000:5000"
问题是,restart: always
当我终止容器(使用来模拟应用程序崩溃docker kill
)时,策略似乎不起作用,并且即使退出代码为137,docker-compose也不会重新启动容器。使用restart: on-failure
策略时,我观察到相同的行为。版本2
和3
docker-compose的行为相同。我的系统是Ubuntu Server 16.04 x64。
我的问题是:
- 为什么docker-compose不会重新启动已崩溃(被杀死)的容器?
- 如何检查重启策略是否有效?
docs.docker.com/compose/compose-file/#restart_policy&docs.docker.com/compose/compose-file/#restart
—
alexus
我去过很多次,但是正如您所看到的那样,文档并不健全,也没有解释此功能的工作原理,这就是为什么我要问这个问题-我希望从具有该领域实际经验的人那里得到答案。
—
Marcin Zablocki