Docker問題:容器互連時通路主控端出現“No route to host”的問題
問題:
環境:
CentOS
、離線安裝的
docker
環境
場景:部落客在用離線鏡像
tar
包安裝
mysql
後,運作并在
Windows
上用
Navicat
和
java
項目都可以連接配接上,但是将項目打包成鏡像部署到伺服器上啟動時,報錯了,兩條錯誤資訊:
- 1.The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
- 2.No route to host
個人估計是網絡配置的原因,建立docker服務後,docker會有一個預設的内部網絡,
172.17.0.1
檢視網絡資訊,指令:
ip a
[root@localhost server]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:93:3b:ac:9f brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:93ff:fe3b:ac9f/64 scope link noprefixroute
valid_lft forever preferred_lft forever
解決方法:依次執行以下指令即可
nmcli connection modify docker0 connection.zone trusted
systemctl stop NetworkManager.service
firewall-cmd --permanent --zone=trusted --change-interface=docker0
systemctl start NetworkManager.service
nmcli connection modify docker0 connection.zone trusted
systemctl restart docker.service
執行完上面的指令後,再啟動前面建立的容器即可
參考部落格:https://blog.csdn.net/iouczp/article/details/80300500