参考地址: https://stackoverflow.com/questions/40214617/docker-no-route-to-host https://serverfault.com/questions/987686/no-network-connectivity-to-from-docker-ce-container-on-centos-8
问题:
通过docker-compose启动多个服务后,发现服务之间网络请求提示错误:no route to host
Nov 29 09:16:32 172.19.0.1 core[64592]: 2020-11-29T14:16:32Z [ERROR] [/common/utils/utils.go:106]: failed to connect to tcp://postgresql:5432, retry after 2 seconds :dial tcp 172.19.0.3:5432: connect: no route to host
Nov 29 09:16:35 172.19.0.1 core[64592]: 2020-11-29T14:16:35Z [ERROR] [/common/utils/utils.go:106]: failed to connect to tcp://postgresql:5432, retry after 2 seconds :dial tcp 172.19.0.3:5432: connect: no route to host
解决:
查看Docker网络地址
[root@localhost ~]# nmcli
......
docker0: 已连接 到 docker0
"docker0"
bridge, 02:42:C7:FF:5D:E5, 软件, mtu 1500
inet4 172.17.0.1/16
route4 172.17.0.0/16
inet6 fe80::42:c7ff:feff:5de5/64
route6 fe80::/64
route6 ff00::/8
......
添加信任
firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=172.27.0.0/16 accept'
添加公共区域
# Allows container to container communication, the solution to the problem
firewall-cmd --zone=public --add-masquerade --permanent
# reload the firewall
firewall-cmd --reload
可能的解决方案
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
错误发生环境
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
[root@localhost ~]# docker version
Client: Docker Engine - Community
Version: 19.03.13
API version: 1.40
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:02:36 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.13
API version: 1.40 (minimum version 1.12)
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:01:11 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.3.7
GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
[root@localhost ~]# docker-compose version
docker-compose version 1.27.4, build 40524192
docker-py version: 4.3.1
CPython version: 3.7.7
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019