0%

docker实践12:使用重启策略保持可用

失败时停止

Docker将容器的非零退出算作容器崩溃。默认情况,容器崩溃后会一直保持停止状态。

我们这里有个特殊的容器,会发送一条消息,然后退出返回1。这就可以模拟一个容器崩溃。

1
docker run -d --name restart-default scrapbook/docker-restart-example

如果列出所有的容器,包括停止的,就会看到这个停用的容器。

1
docker ps -a

可以看log来定位问题

1
docker logs restart-default

失败后重启

根据场景,有可能重启失败的进程就可以解决问题。Docker会自动尝试启动指定次数,直到仍然失败。

命令选项:*–restart=on-failure:#*运行你设置Docker尝试重启的次数。下面的例子,docker会尝试重启3次。

1
docker run -d --name restart-3 --restart=on-failure:3 scrapbook/docker-restart-example

可以查看log,确实重启的3次。

1
docker logs restart-3

一直重启

最后,可以设置Docker一直重启容器。这个例子中,Docker会一直重启容器,直到容器明确告知停止。

使用always标识,在容器崩溃后会一直尝试重启。

1
docker run -d --name restart-always --restart=always scrapbook/docker-restart-example

查看log会看到不断尝试重启的记录

1
docker logs restart-always

欢迎关注我的其它发布渠道