美文网首页我爱编程
docker的restart策略

docker的restart策略

作者: 江南救世 | 来源:发表于2018-03-30 11:08 被阅读1019次

    docker支持如下restart策略:

    • no – 容器退出时不要自动重启。这个是默认值。* on-failure[:max-retries] – 只在容器以非0状态码退出时重启。可选的,可以退出docker daemon尝试重启容器的次数。* always – 不管退出状态码是什么始终重启容器。当指定always时,docker daemon将无限次数地重启容器。容器也会在daemon启动时尝试重启,不管容器当时的状态如何。* unless-stopped – 不管退出状态码是什么始终重启容器,不过当daemon启动时,如果容器之前已经为停止状态,不要尝试启动它。

    在每次重启容器之前,不断地增加重启延迟[上一次重启的双倍延迟,从100毫秒开始]来防止影响服务器。这意味着daemon将等待100ms,然后200 ms, 400, 800, 1600等等,直到超过on-failure限制,或执行docker stop或docker rm -f。
    如果容器重启成功[容器启动后并运行至少10秒],然后delay重置为默认的100ms。
    你可以使用on-failure策略指定docker尝试重启容器的最大次数。默认下docker将无限次数重启容器。可以通过docker inspect来查看已经尝试重启容器了多少次。例如,获取容器“my-container”的重启次数:

    1. $ docker inspect -f "{{ .RestartCount }}" my-container
    2. 2

    或者获取上一次容器重启时间:

    1. $ docker inspect -f "{{ .State.StartedAt }}" my-container
    2. 2015-03-04T23:47:07.691840179Z

    示例

    1. $ docker run --restart=always redis

    这运行了一个restart策略为always的redis容器,以使得容器退出时,docker将重启它。

    1. $ docker run --restart=on-failure:10 redis

    这个运行了一个restart策略为on-failure,最大重启次数为10的redis容器。如果redis以非0状态退出连续退出超过10次,那么docker将中断尝试重启这个容器。只有on-failure策略支持设置最大重启次数限制。

    相关文章

      网友评论

        本文标题:docker的restart策略

        本文链接:https://www.haomeiwen.com/subject/cgkycftx.html