0%

Docker容器内无法访问外网

背景

容器内能ping不通公网IP

解决方法

使用–net:host选项

1
sudo docker run --net:host --name ubuntu_bash -i -t ubuntu:latest /bin/bash

使用–dns选项

1
sudo docker run --dns 8.8.8.8 --dns 8.8.4.4 --name ubuntu_bash -i -t ubuntu:latest /bin/bash

改dns server

1
2
vi /etc/default/docker
去掉“docker_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"”前的#号

不用dnsmasq

1
2
3
4
5
vi /etc/NetworkManager/NetworkManager.conf
在dns=dnsmasq前加个#号注释掉

sudo restart network-manager
sudo restart docker

重建docker0网络

1
2
3
4
5
pkill docker
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
docker -d

直接在docker内修改/etc/hosts

重启docker

1
systemctl restart docker