官网连接:https://docs.docker.com/config/containers/start-containers-automatically/

当容器退出后,或者docker程序重启了,容器是否要重启,可以用重启策略控制。

用docker run命令的时候,用--restart 设置容器重启策略

使用重新启动策略时,请记住以下几点:

1.重新启动策略仅在容器启动成功后生效。在这种情况下,成功启动意味着容器已启动至少10秒钟,并且Docker已开始对其进行监视。这样可以防止根本不启动的容器进入重新启动循环。

2.如果您手动停止容器,则会忽略重新启动策略,直到Docker守护程序重新启动或手动重新启动容器。这可以防止重新启动循环。

3.重新启动策略仅适用于容器。

4.当您在前台运行容器时,停止容器会导致附加的CLI也退出,而不管容器的重新启动策略如何。

选项如下:

Flag

Description

no

不自动重启容器。(默认)

on-failure[:max-retries]

如果容器因为错误退出了(退出码非0),就会自动重启

如果守护程序重新启动,它不会重新启动容器。
max-retries可选参数,最大重启尝试次数

always

只要容器停止,就重新启动容器。但是如果它是手动停止的,则仅在Docker守护程序重新启动或容器本身手动重新启动时才重新启动。

unless-stopped

和always类似,但如果是手动停止的,即使Docker守护程序重新启动,它也不会被自动启动

以下命令启动Redis容器并将其配置为始终重新启动,除非该容器被显式停止。

$ docker run -d --restart unless-stopped redis

下面的命令为正在运行中的容器更改重启策略

$ docker update --restart always redis

下面的命令批量更改重启策略

$ docker update --restart always $(docker ps -q)

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐