我让它正常工作,但现在它停了。我尝试了以下命令,但没有效果:

Docker运行-dns 8.8.8.8 base ping google.com

Docker运行base ping google.com

Sysctl -w net.ipv4。Ip_forward =1 -在主机和容器上

我得到的是未知主机google.com。Docker 0.7.0版本

什么好主意吗?

P.S. ufw也被禁用了


当前回答

我使用DOCKER_OPTS="——dns 8.8.8.8",后来发现我的容器不能直接访问互联网,但可以访问我的公司内部网。我把DOCKER_OPTS改为如下:

DOCKER_OPTS="--dns <internal_corporate_dns_address"

替换internal_corporate_dns_address与我们的DNS的IP地址或FQDN和重启docker使用

sudo service docker restart

然后生成我的容器并检查它是否可以访问互联网。

其他回答

经过几个小时的努力,我终于解决了问题

问题是linux使用旧版本的libseccomp2

获取签名密钥以验证新包,否则将无法安装

rpi ~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC 648ACFD622F3D138

将Buster后台端口存储库添加到apt sources.list

rpi ~$ echo 'deb http://httpredir.debian.org/debian buster-backports main contrib non-free' | sudo tee -a /etc/apt/sources.list.d/debian-backports.list

rpi ~$ sudo apt update
rpi ~$ sudo apt install libseccomp2 -t buster-backports

在这次尝试之后

rpi ~$ docker run -it --rm alpine:3.15.0
(alpine shell)# apk update

Apk更新将获取,因此您连接到互联网

我在用

Linux raspberrypi 5.10.63-v7l+ #1496 SMP Wed Dec 1 15:58:56 GMT 2021 armv7l GNU/Linux

您可以使用uname -a进行检查

我在这里尝试了大部分答案,但唯一有效的是重新创建网络:

$ docker network rm the-network
$ docker network create --driver=bridge the-network

我还需要重新创建使用它的docker容器:

$ sudo docker create --name the-name --network the-network

然后是互联网接入。

用OSX的答案更新这个问题(使用Docker Machine)

如果你使用Docker Machine在OSX上运行Docker,那么下面的方法对我来说是有效的:

docker-machine restart

<...wait for it to restart, which takes up to a minute...>

docker-machine env
eval $(docker-machine env)

然后(至少在我的经验中),如果你从容器中ping google.com,一切都会很好。

对于Ubuntu 19.04使用openconnect 8.3进行VPN,我必须将/etc/resolve.conf符号链接到systemd中的文件(与answerby wisbucky相反)

执行ln -sf /etc/resolv.conf /run/systemd/resolve/resolv.conf

调试步骤

连接到公司VPN 在/etc/resolv.conf或/run/systemd/resolve/resolv.conf中查找正确的VPN设置 无论哪个有正确的DNS设置,我们都会将其符号链接到另一个文件 (提示:在赋值的左边放置一个设置正确的)

Docker版本:Docker版本19.03.0-rc2,构建f97efcc

对我来说,我在使用podman时遇到了与redhat/centos/fedora用户相同的问题

firewall-cmd --zone=public --add-masquerade
firewall-cmd --permanent --zone=public --add-masquerade

对于更多的防火墙和podman(或docker) -容器中没有互联网,无法解析主机