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

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也被禁用了


当前回答

对我来说,是主机的防火墙。我必须在主机的防火墙上允许DNS。并且在更改主机防火墙设置后不得不重新启动docker。

其他回答

在windows(8.1)我杀死了virtualbox接口(通过任务管理),它解决了这个问题。

为子孙后代分享一个简单而有效的解决方案。当我们运行docker容器时,没有显式地提到——network标志,它连接到它的默认网桥网络,这禁止连接到外部世界。为了解决这个问题,我们必须创建自己的网桥网络(用户定义的网桥),并且必须使用docker run命令显式地提到它。

docker network create --driver bridge mynetwork
docker run -it --network mynetwork image:version

它帮助我:

sudo ip link delete docker0
sudo systemctl stop docker.socket
sudo systemctl stop docker.service

sudo systemctl start docker.socket
sudo systemctl start docker.service

注意:在此之后,接口docker0的ip地址必须是smth,如下所示:

inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0

我使用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

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

您可能已经使用dns选项启动了docker—dns 172.x.x.x

我有同样的错误,并从/etc/default/docker删除选项

行:

# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="--dns 172.x.x.x"