对于容器内的 Docker Desktop,DNS 名称 host.docker.internal 解析为允许网络访问主机的 IP 地址。使用Rancher Desktop时是否有类似的情况?
假设 Docker Desktop 中有一个正在运行的容器(例如 alpine 镜像),则可以运行
docker exec alpine-container ping -c 2 host.docker.internal
Run Code Online (Sandbox Code Playgroud)
更新: 这个问题似乎已在 v1.0.1 中得到解决并发布。
在 Rancher Desktop 中使用 dockerd (moby) 容器运行时时,添加--add-host=host.docker.internal:host-gateway到docker run命令将实现此行为。
docker run -it --add-host=host.docker.internal:host-gateway alpine cat /etc/hosts
Run Code Online (Sandbox Code Playgroud)
或者对于 docker-compose:
# docker-compose.yml
my_app:
image: ...
extra_hosts:
- "host.docker.internal:host-gateway"
Run Code Online (Sandbox Code Playgroud)
然而,我不相信当使用 Rancher Desktop 和 containerd 作为容器运行时时这会起作用。
小智 5
正如问题中提到的,这个问题已在 Rancher Desktop 中得到解决。但是,对于可能遇到此问题的 Windows 用户,可能需要防火墙规则。https://docs.rancherdesktop.io/faq/
根据常见问题解答,可能需要以下规则。
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
Run Code Online (Sandbox Code Playgroud)
有一个关于它的开放 GitHub 问题 [0]。作为关闭此问题之前的解决方法,Rancher Labs 成员的提示可能会有所帮助(至少在 Linux/macOS 上运行 Rancher Desktop 时):
我认为我们没有它的符号名称,但主机始终(在 Linux 和 macOS 上)可通过 192.168.5.2(即 qemu 网关地址)访问。[1]
[0] https://github.com/rancher-sandbox/rancher-desktop/issues/1316
| 归档时间: |
|
| 查看次数: |
14002 次 |
| 最近记录: |