Kubernetes

Docker 生产环境常见故障收集

不知有无小伙伴经常遇到,明明在自己测试环境好好的,一去客户现场机房部署就各种幺蛾子..... 如:docker daemon启动不了、跟测试完全一样导入的image却到生产上启动不了container,通常都是因为你还不够熟悉容器化原理,以下就整理收集了一些亲身经历或其他资料的常见故障及排查方法。

Q1. docker创建运行容器时:

Error response from daemon: No command specified. See 'docker run --help'.

A1. 通常都是由于创建容器的镜像缺少cmd导致,解决:如以下示例中,在run最后追加 /bin/bash -c /start.sh
docker run -tid --name=sso1 --env-file=$(pwd)/environment -p=28080:28080 -v=/mnt/disk1:/mnt/disk1 safecloud/sso:master /bin/bash -c /start.sh

Q2. docker创建运行容器时:
/proc/self/attr/keycreate: permission denied\"": unknown.
A2. 通常这都是由于 SELINUX 的默认安全策略导致,解决:关闭或降级 SELINUX
sudo vim /etc/selinux/config
#SELINUX=enforcing # enforcing|permissive|disabled
SEINUX=disabled

Q3. 当修改宿主机名后,在容器启动 java 服务时,如:
修改主机名
hostnamectl set-hostname web-node1
再启动容器(java服务),报错:
Caused by: java.net.UnknownHostException: web-node1: web-node1: Try again
        at java.net.InetAddress.getLocalHost(InetAddress.java:1506) ~[na:1.8.0_212]
A3. 通常应该是没有重启导致,若不想重启,则可手动增加新主机名解析:
sudo vim /etc/hosts
127.0.0.1 localhost.localdomain localhost web-node1 # ← 这里增加
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback localhost
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

其他 docker 常见故障排查参考:

生产环境用Docker?先搞定这8个常见故障:https://mp.weixin.qq.com/s/2GNKmRJtBGHhUyVBRbRgeA

留言

您的电子邮箱地址不会被公开。