1

嗨,谁能帮我告诉正确的命令来提供对正在运行的容器的互联网访问?

我知道我们必须在 docker run 命令中指定 --net 才能从容器内部访问互联网。

如果我想为我没有使用 --net 命令运行的容器提供 Internet 访问(即没有 Internet 访问的容器)怎么办?

我从以下位置获得了 docker network connect NetworkName ContainerName/ID命令:https ://docs.docker.com/engine/reference/commandline/network_connect/

但运行以上命令不提供互联网访问,因此请求分享我正确的命令。

注意:我在 centos 容器上尝试这个

4

2 回答 2

1

默认情况下,您的 docker 容器应该可以访问互联网,因为这是 docker 的正常设置,并且绝不应该需要提供--net来获得它。如果他们不这样做,那么您的主机上可能混杂了一些东西,例如 ie。附加防火墙规则或未启用 IP 转发。

对于初学者,检查您是否启用了 ip 转发,应该如下所示:

$ cat /proc/sys/net/ipv4/ip_forward
1

并验证您的 iptables 中是否有一些时髦的东西

于 2018-08-08T07:01:52.707 回答
0

正确配置后,Docker 容器应该可以解析互联网流量。请通过以下方式检查容器网络状态,

Enter public DNS (8.8.8.8)manually in /etc/resolve.conf.

如果不起作用,请检查容器网络端。

#goto /etc/default/docker
#add public DNS values there (DOCKER_OPTS="--dns 208.67.222.222 --dns 208.67.220.220")
#sudo service docker restart

登录到容器并 ping google.com

于 2019-07-04T13:53:09.167 回答