RUN apk update
这样的命令。我已经尝试了各种解决方案,但不幸的是都没有成功。以下是我已经阅读和尝试过的一些讨论帖子:
https://superuser.com/questions/1130898/no-internet-connection-inside-docker-containers
https://forums.docker.com/t/no-internet-access-in-the-docker-containers/108223
https://askubuntu.com/questions/1445229/no-network-access-from-within-docker-container
以下是一个从完全干净的服务器(Ubuntu 22.04)开始的问题示例:
ping 8.8.8.8
或ping google.com
在主机上运行得非常顺畅。按照官方说明(使用apt存储库安装)安装Docker。
运行
docker pull alpine
和docker run --rm -it alpine:latest
。连接到alpine容器。
PING 8.8.8.8 (8.8.8.8): 56 data bytes ^C --- 8.8.8.8 ping statistics --- 30 packets transmitted, 0 packets received, 100% packet loss
/ # ping google.com ping: bad address 'google.com'
像
/etc/resolv.conf
这样的文件在两台服务器上看起来几乎一样。Strato服务器上的resolv.conf:
nameserver 127.0.0.53
options edns0 trust-ad
search .
Hetzner服务器上的resolv.conf
nameserver 127.0.0.53
options edns0 trust-ad
默认的“bridge”网络在我运行
docker inspect bridge
时看起来完全一样。
当我用docker inspect <container name>
比较两台机器上的容器时,一切看起来都一样。只有正在运行的示例上的CgroupnsMode
属性设置为host
,而Strato服务器上的设置为private
(但我不确定这是否与连接有关)。如果我使用
--network host
选项启动容器,我可以成功设置容器,并且还可以从容器内部访问互联网,但此后我的Django容器无法找到Postgres容器。我也认为这不是首选的方法。有人知道我在Strato服务器上遇到Docker问题的原因吗? 我真的不知道还能尝试什么。
提前感谢任何帮助!
敬上,Brian