Reputation: 690
For Docker Desktop inside a container, the DNS name host.docker.internal resolves to an IP address allowing network access to the host. Is there something similar when using Rancher Desktop?
Assuming a running container (e.g the alpine image) in Docker Desktop it's possible to run
docker exec alpine-container ping -c 2 host.docker.internal
Update: This has been resolved and released with v1.0.1 as it seems.
Upvotes: 17
Views: 17883
Reputation: 290
As mentioned in the question, this has been resolved in Rancher Desktop. However, for Windows users who might hit this question, a firewall rule might be required. https://docs.rancherdesktop.io/faq/
The following rule might be required according to the faq.
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
Upvotes: 5
Reputation: 731
When using the dockerd (moby) container runtime in Rancher Desktop, adding --add-host=host.docker.internal:host-gateway
to your docker run
command will achieve this behavior.
docker run -it --add-host=host.docker.internal:host-gateway alpine cat /etc/hosts
Or for docker-compose:
# docker-compose.yml
my_app:
image: ...
extra_hosts:
- "host.docker.internal:host-gateway"
However I don't believe this will work when using Rancher Desktop with containerd as the container runtime.
Upvotes: 8
Reputation: 690
There is an open GitHub issue for it [0]. As a workaround until this is closed, a hint from a member of Rancher Labs might help (at least when running Rancher Desktop on Linux/macOS):
I don't think we have a symbolic name for it, but the host is always (on Linux and macOS) accessible via 192.168.5.2, which is the qemu gateway address. [1]
[0] https://github.com/rancher-sandbox/rancher-desktop/issues/1316
Upvotes: 2