Docker踩坑日记-1
问题背景
这几天为了测试一个Django
的webservice
,想在云主机上用docker-compose
部署一个本地版本进行测试,但docker-compose up
的过程中,build
镜像时无法拉取镜像;排查后发现使用自定义网桥(docker
中的bridge
网桥)network
时都无法连接外网,而且容器内无法ping到网关,但宿主机内可以ping到容器的网关,docker network inspect
查看自定义的网络,ip
分配以及网关设置正常
使用docker
默认的bridge
网络创建容器,发现也无法访问外网,情况一模一样
解决过程
仔细排查后怀疑是docker network
本身的问题,随后使用bridge-utils
创建网桥:
暂停
docker
服务:1
service docker stop
添加网桥:
1
brctl addbr br0
设置网段:
1
ip addr add 192.168.12.0/24 dev br0
启用网桥
br0
:1
ip link set dev br0 up
修改
docker
默认网桥:1
vim /etc/docker/daemon.json
添加
bridge
字段:1
"bridge":"br0"
重启
docker
1
service docker start
之后使用docker
默认bridge
网络运行测试容器,成功连接外网,确认是docker network
的问题
随后又根据这个线索谷歌了一番,发现根因是docker 加载内核的bridge.ko
驱动异常,导致docker0
网卡无法转发数据包,也就是系统内核的网桥模块bridge.ko
加载失败导致的
解决方案
升级centos
内核,重装docker
后解决
体会与收获
从docker
网络一步一步摸到centos
内核问题,有些坑真是深不见底啊
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kevinello!
评论
UtterancesTwikoo