故障情形
今天接到項目上開發人員的問題反饋,客戶有一臺虛機在安裝完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