启动容器失败常见问题
遇到负载创建失败的情况时,用户可以在服务详情内的「容器日志」和「事件」标签下看到错误原因:
Q01: ContainerCannotRun?
A:
错误场景:
- 自定义命令找不到, 如:
oci runtime error: exec: \"/bin/xxx\": stat /bin/xxx: no such file or directory"
; - 设置了错误的 CMD/ENTRYPOINT 命令;
- 数据盘挂载到系统路径或日志目录设置错误,导致系统无法正常运行。
Q02:Completed?
A:
错误场景:
- 容器一启动就退出,如:docker 启动命令是
/bin/bash
、/bin/ls
等不能使容器保持前台运行的命令。建议使用诸如/usr/sbin/sshd -D
命令使容器保持运行。
Q03:Error?
A:
错误场景:
- 没有设置镜像运行所需的环境变量,如:未设置 mysql 运行所需的密码
database is uninitialized and password option is not specified You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
- 服务启动使用的配置文件问题,如:nginx.conf 格式不合法。
Q04:OOMKilled?
A:
错误场景:
- 容器的内存使用超过预设的阈值或者阈值设置过小。
Q05:ImagePullBackOff?
A:
错误场景:
- 启动前拉取容器镜像失败。如:
Back-off pulling image \"hub.c.163.com/zhouss/asdfasdf:latest\
建议:
- 阅读镜像的说明文件(官方镜像在镜像中心均有说明),了解镜像的使用方法;
- 将镜像拉取到本地 Docker 环境,检查是否可以通过
docker run -d <镜像名称>
命令运行; - 正确设定容器启动时具体的执行命令,详见 Dockerfile指令;
- 错误场景仅供参考,若依然无法定位具体问题,请提交工单联系我们。