故障情形
今天接到项目上开发人员的问题反馈,客户有一台虚机在安装完docker之后,启动一些docker容器服务时,发现这些容器服务无法正常启动。通过tail -f /var/log/messages
查看系统log,
发现系统一直在报错,主要内容是bro:port 2(veth0) entered blocking state
或bro:port 1(vxlan0) entered blocking state
,网卡呈现阻塞的状态,具体报错详见下图:
使用systemctl status docker -l
查看docker运行状态,发现docker是正常运行的,但是状态信息里打印的有error错误,都是网络方面的报错~
故障排查和处理
上面 docker 运行状态是正常的,说明 docker 的安装部署应该是没问题的,从报错上看应该是主机网路的问题,经排查发现系统的 selinux
是enforcing
状态。
临时关闭 selinux 重启 docker 发现网络恢复正常~
主要排查步骤如下:
(1)查看系统当前selinux的状态
getenforce
(2)关闭selinux
#临时关闭
setenforce 0
#永久关闭
sed -i s#SELINUX=enforcing#SELINUX=disabled#g /etc/sysconfig/selinux
(3)查看系统防火墙状态
#查看状态
systemctl status firewalld
#关闭防火墙(按需)
systemctl stop firewalld
(4)重启docker服务
systemctl restart docker