如何从容器内部连接到互联网?

问题描述 投票:0回答:1

我在 Windows 上使用 Docker Desktop 来学习 Docker,并使用 WSL Ubuntu 来学习 Docker。 而我的机器的网络从互联网调制解调器获取的 IP 为 192.168.1.102,WSL IP 为 172.17.71.95,并且它们都使用这些设置连接到互联网。

image

但是,当我运行容器时,解析器(在 /etc/resolve.conf 中)被放置在调制解调器的 IP 范围内,这会阻止互联网连接。通过向resolve.conf添加名称服务器 8.8.8.8,我可以连接到互联网。

image

但问题是,对于像节点这样的容器,我无法更改解析器,因此我无法从容器内部连接到互联网。 在 Docker Desktop 上配置容器网络设置的最佳实践是什么?

我运行一个节点:alpine 容器,并尝试更改解析器。但它不起作用并且无法连接到互联网

node.js docker ubuntu networking windows-subsystem-for-linux
1个回答
0
投票

确保 Docker Desktop 设置为使用 WSL 2 后端并启用 WSL 集成。 使用

--network=bridge
运行容器以利用 Docker 的默认桥接网络。 运行容器时使用
--dns
选项指定自定义 DNS 设置(例如,
docker run
--dns 8.8.8.8 node:alpine
)。 使用
ip addr show eth0
验证 WSL 网络配置以确保正确的 IP 分配。 如果问题仍然存在,请重新启动 Docker Desktop 或主机并检查容器内的 DNS 解析。

© www.soinside.com 2019 - 2024. All rights reserved.