都是Centos7 一台业务系统服务器A docker,数据库服务器B docker
症状:服务器A宿主机能ping通B,服务器A容器中无法ping通B。同时服务器A容器中可ping 8.8.8.8,但无法上网 ping www.baidu.com不通。
之前预判可能性:
1、外部防火墙拦截,因有服务器之间防火墙。
2、服务器A docker容器中解析DNS问题
3、docker桥接问题
4、服务器A防火墙问题
5、docker0网卡问题
引用解决方案
https://blog.csdn.net/qq_35641923/article/details/121549499
Docker - 没有到主机的路由 - 堆栈溢出 (stackoverflow.com)
Docker - 没有到主机
运维(18) 解决Docker容器内无法访问外网问题
Docker容器内不能联网的6种解决方案 - 这个够全的,可惜还是没有解决
一一找到解决方案,处理后都不能解决,最终都不是以上原因。
容器IP端与宿主机一致,暴力解决重新拉取:
networks:
networks_default:
ipam:
driver: default
config:
- subnet: "200.0.0.0/16" # 宿主机为201,容器改为200
- 先down了
docker-compose down
- 清理掉所有容器和镜像,
我是还没有业务数据,谨慎操作
docker system prune -a
- 重新build
docker-compose build
- 重新拉取跑起来
docker-compose up -d
重新跑起来后,进入容器ping www.baidu.com
终于可以了。