运维
PythonJava前端数据库
Docker
Docker
  • Docker简介
  • 基本概念
    • 镜像
    • 容器
    • 仓库
  • 安装
  • 使用镜像
    • 获取镜像
    • 列出镜像
    • 删除镜像
    • 导入和导出
  • Dockerfile
    • 构建镜像
    • 多阶段构建
    • 构建多种系统架构支持的镜像
    • Dockerfile 命令介绍
      • COPY 复制文件
      • ADD 更高级的复制
      • CMD 容器启动命令
      • ENTPYPOINT 入口点
      • ENV 设置环境变量
      • ARG 构建参数
      • VOLUME 匿名卷
      • USER 指定当前用户
      • EXPOSE 暴露端口
      • WORKDIR 工作目录
      • SHELL 指令
      • LABEL 为镜像添加源数据
      • ONBUILD 为他人作嫁衣裳
  • 数据管理
    • 数据卷
    • 挂载主机目录
  • 操作容器
    • 启动、停止和删除
    • 进入容器
    • 导入和导出
    • 重启策略
  • 网络配置
    • 基本网络配置
    • 高级网络配置
  • Docker Buildx
    • 使用buildx构建镜像
    • 使用buildx构建多种系统架构镜像
  • Docker Compose
    • 简介
    • 简单使用
    • 多个配置文件
    • Compose网络配置
    • 控制启动服务启动顺序
    • 命令说明
  • Kubernetes
由 GitBook 提供支持
在本页
  • Docker 容器退出状态码
  • 获取退出码
  • 使用 docker ps -a
  • 使用inspect命令
  • --restart 参数说明

这有帮助吗?

  1. 操作容器

重启策略

Docker 容器的重启策略如下:

  • no:默认策略,在容器退出时不重启容器。启动容器时候不添加参数 --restart 即可。

  • on-failure:在容器非正常退出时(退出状态非0),才会重启容器。

  • always:只要容器退出就重启容器。

  • unless-stopped:在容器退出时总是重启容器,但是 Docker 守护进程启动之前就已经停止运行的容器不包括在内。

Docker 容器退出状态码

Docker 容器也有退出状态码,类似 Linux 命令。Docker 容器的重启策略就是基于状态码。具体如下:

  • 0:表示容器正常退出。例如 stop 容器。

  • 非0:表示容器退出异常(退出状态码采用 chroot 标准)。例如执行 docker run 失败后的容器退出。

  • 125:Docker 守护进程本身有错误。

  • 126:容器启动后,要执行的默认命令无法调用

  • 127:容器启动后,要执行的默认命令不存在。

  • 其他命令状态码:容器启动后在容器内部执行命令,该命令退出时的返回状态码,就作为容器的退出状态码。

获取退出码

使用 docker ps -a

如下所示:Exited(1) 33 minutes ago,1 就是这个容器的退出状态码。

docker ps -a | grep nginx
3e64cad716c0   192.168.100.20:5000/mynginx:latest   "nginx"   36 minutes ago   Exited (1) 33 minutes ago    nginx-demo

使用inspect命令

inspect 命令是用来获取容器的命令,配合其他参数就能获取容器的退出状态码。如下所示

docker inspect 3e64cad716c0 --format='{{.State.ExitCode}}'

--restart 参数说明

  • --restart 选项通常只用于 detached (后台运行模式)模式的容器。

  • --restart 选项不能与 --rm 选项同时使用。因为 --rm 选项只适用于 foreground 模式的容器。

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

上一页导入和导出下一页网络配置

最后更新于1个月前

这有帮助吗?