1. Docker容器的重启策略

Docker容器的重启策略是面向生产环境的一个启动策略,在开发过程中可以忽略该策略。

Docker容器的重启都是由Docker守护进程完成的,因此与守护进程息息相关。

Docker容器的重启策略如下:

  • no,默认策略,在容器退出时不重启容器
  • on-failure,在容器非正常退出时(退出状态非0),才会重启容器
  • on-failure:3,在容器非正常退出时重启容器,最多重启3次
  • always,在容器退出时总是重启容器
  • unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

2. Docker容器的退出状态码

docker run的退出状态码如下:

  • 0,表示正常退出
  • 非0,表示异常退出(退出状态码采用chroot标准)
  • 125,Docker守护进程本身的错误
  • 126,容器启动后,要执行的默认命令无法调用
  • 127,容器启动后,要执行的默认命令不存在
  • 其他命令状态码,容器启动后正常执行命令,退出命令时该命令的返回状态码作为容器的退出状态码

3. docker run的--restart选项

通过--restart选项,可以设置容器的重启策略,以决定在容器退出时Docker守护进程是否重启刚刚退出的容器。

--restart选项通常只用于detached模式的容器。

--restart选项不能与--rm选项同时使用。显然,--restart选项适用于detached模式的容器,而--rm选项适用于foreground模式的容器。

在docker ps查看容器时,对于使用了--restart选项的容器,其可能的状态只有Up或Restarting两种状态。

示例:
docker run -d --restart=always ba-208
docker run -d --restart=on-failure:10 ba-208

查看容器重启次数
docker inspect -f "{ { .RestartCount }}" ba-208
查看容器最后一次的启动时间
docker inspect -f "{ { .State.StartedAt }}" ba-208

参考链接:

https://docs.docker.com/engine/reference/run/

1. Docker容器的重启策略Docker容器的重启策略是面向生产环境的一个启动策略,在开发过程中可以忽略该策略。Docker容器的重启都是由Docker守护进程完成的,因此与守护进程息息相关。Docker容器的重启策略如下:no,默认策略,在容器退出时不重启容器 on-failure,在容器非正常退出时(退出状态非0),才会重启容器 on-failure:3,在容器非正常退...
-- restart =always参数能够使我们在 重启 docker 时,自动启动相关 容器 Docker 容器 重启 策略 如下: no,默认 策略 ,在 容器 退出时不 重启 容器 on-failure,在 容器 非正常退出时(退出状态非0),才会 重启 容器 on-failure:3,在 容器 非正常退出时 重启 容器 ,最多 重启 3次 always,在 容器 退出时总是 重启 容器 unless- stop ped ,在 容器 退出时总是 重启 容器 ,但是不考虑在 Docker 守护进程启动时就已经停止了的 容器 参考: Docker 容器 重启 策略 docker run
no为默认值,表示 容器 退出时, docker 不自动 重启 容器 on-failure表示,若 容器 的退出状态非0,则 docker 自动 重启 容器 ,还可以指定 重启 次数,若超过指定次数未能启动 容器 则放弃 docker update -- restart =on-failure:3 [ 容器 名] always表示只要 容器 退出,则dock...
容器 是镜像的运行时实例。用户也同样可以从单个镜像上启动一个或多个 容器 。 虚拟机和 容器 最大的区别是 容器 更快并且更轻量级——与虚拟机运行在完整的操作系统之上相比, 容器 会共享其所在主机的操作系统/内核。 下图为使用单个 Docker 镜像启动多个 容器 的示意图。
最近新加了一个 容器 ,发现这个 容器 docker 服务 重启 之后不会自动起来。原来是少了-- restart 参数 docker run -d -- restart =always --name=nginx 605c77e624dd-- restart =always # 表示 容器 退出时, docker 会总是自动 重启 这个 容器 -- restart =on-failure:3 # 表示 容器 的退出状态码非0(非正常退出...
使用 docker run 命令创建 容器 时没有添加参数 -- restart =always ,导致的后果是:当 Docker 重启 时, 容器 未能自动启动。 # docker run -ti -p 9501:9501 -- restart =always -v /data/nginx:/nginx:latest – restart =always : 开机启动,失败也会一直 重启 ; – restart =on-failure:10 : 表示最多 重启 10次 docker run -- restart 具体参数值详细信.
上周实验室有几台服务器中了勒索病毒,然后领导安排专人断了实验室网络,把每台服务器扫描杀毒,结果导致我开发的网站MySQL无法启动, 查看 docker 日志: docker container logs ci-mysql [root@pa_cicd ~]# docker container logs ci-mysql 报错如下: docker -entrypoint.sh: line 72: mysqld: command not found,感觉应该是container被损坏了,要重新从备份导出一份过来
### 回答1: docker run -- restart =always 的意思是在 容器 退出时自动 重启 容器 ,并且在 Docker 守护进程启动时启动 容器 。这个命令可以保证 容器 的持续运行,即使 容器 出现故障或崩溃也会自动 重启 。 ### 回答2: docker run -- restart =always 是 docker 命令中的一个参数,作用是设置在 docker 服务异常退出时自动 重启 容器 。 在 容器 运行过程中,可能会出现一些问题导致 容器 异常退出,如应用程序或服务崩溃、内存溢出、网络故障等。如果不进行设置自动 重启 ,这就需要手动对 容器 进行 重启 ,否则服务将会中断,造成不必要的麻烦和时间浪费。 使用 -- restart =always 参数可以在 容器 运行过程中自动 重启 ,保证服务的不间断提供,提高了 容器 的可靠性和稳定性。无论是 容器 异常退出还是物理机或虚拟机故障,都能自动 重启 ,保证应用可以及时恢复。同时,该参数还能让开发者更加便捷地进行 容器 的管理,提高了开发效率。 例如,使用命令 docker run -- restart =always -d nginx ,启动nginx 容器 ,如果在运行过程中nginx服务异常退出, docker 服务会自动 重启 容器 ,保证服务可以及时恢复,提高了应用程序的可靠性和稳定性。 总之,使用 docker run -- restart =always 参数可以保证服务的可靠性,提高 容器 的稳定性和可靠性,为应用程序的开发和部署提供了保障。 ### 回答3: docker run -- restart =always是一条 Docker 命令,用于在 容器 启动时自动 重启 容器 。当 容器 运行出现故障或其他问题导致 容器 停止,自动 重启 容器 可以确保应用程序始终处于运行状态,保持高可用性。 该命令中的-- restart 参数有多个 选项 ,其中最常见的是always。使用该 选项 时, Docker 会在 容器 异常退出时自动 重启 容器 ,直到手动停止 容器 。 为了实现 容器 的自动 重启 Docker 会在后台运行一个 重启 策略 。当 Docker 检测到 容器 退出时,该 策略 会尝试根据预定义的规则自动 重启 容器 。 在使用 Docker 部署应用程序时,特别是在生产环境中,使用-- restart =always是一个很好的实践,可以确保应用程序在任何情况下都可以正常运行。 总之, Docker 的-- restart 选项 是一个很实用的功能,能够确保应用程序的高可用性和稳定性。在使用该 选项 时,需要根据实际情况选择适当的 重启 策略 ,以确保应用程序的恢复能力。