我无法让 Docker 容器访问互联网?
Posted
技术标签:
【中文标题】我无法让 Docker 容器访问互联网?【英文标题】:I can't get Docker containers to access the internet? 【发布时间】:2014-07-11 17:28:37 【问题描述】:我对此束手无策,我已经梳理了每一个谷歌结果,但没有任何帮助。
我完全无法让 docker 容器访问互联网。 IP 转发已启用 (net.ipv4.ip_forward = 1
),ufw 已关闭,我尝试添加 -dns 8.8.8.8 -dns 8.8.4.4
标志。我在谷歌上找到的所有可能的解决方案都失败了。
有人知道如何提供帮助吗?
按照here 的建议尝试重置所有内容,并告诉我docker -d
没有运行,即使它在运行,也会导致整个事情中断。
【问题讨论】:
【参考方案1】:我也遇到了同样的问题。因此,为了解决这个问题,我使用参数 --net=host
启动了容器,它对我来说非常有效。
这里是完整的声明
sudo docker start --net=host -it --name ex_ngninx ubuntu
【讨论】:
这使它暂时工作但我仍然无法docker build
。 sudo systemctl restart docker
修复了它
这是一种可疑的“修复”。这充其量是一种解决方法。
我在谷歌上搜索了一段时间,--net=host
救了我
--net host
on Docker for Mac 允许容器访问互联网,但 disables host access to the containers。定义 network in docker-compose 对我有用。
--net
不是 docker build
选项,但 --network
似乎是它的有效别名【参考方案2】:
已解决。我关注了these instructions:在NetworkManager.conf
中注释掉了dns=dnsmasq
行
【讨论】:
这个答案更好,因为它还修复了docker build
。
请注意,在 Ubuntu 16+ 中,重启网络管理器的命令现在是 sudo systemctl restart network-manager
,因为它使用的是 systemd
而不是 upstart
。
尝试了所有技巧,但始终显示“0% [连接到 120.0.0.1 (120.0.0.1)] [连接到 120.0.0.1 (120.0.0.1)]”。知道如何解决这个问题吗?我的容器在 Ubuntu 中运行。以上是关于我无法让 Docker 容器访问互联网?的主要内容,如果未能解决你的问题,请参考以下文章