首页 > 解决方案 > 如何将域 CNAME 到“host.docker.internal”?

问题描述

我知道“host.docker.internal”指向运行 docker daemon 的主机。我想实现以下目标:

services:
  xx:    
    extra_hosts: ["example.com:host.docker.internal"]

但是我只能在 extra_hosts 中使用特定的 IP 地址。

我的问题:有没有办法做到这一点?

标签: docker

解决方案


如果您的 docker 版本高于 20.04,那么您可以使用下一个:

extra_hosts:
  - "host.docker.internal:host-gateway"

详情见

然后你可以host.docker.internal用来与主机通信,例如:

$ docker run --rm -it --add-host=host.docker.internal:host-gateway debian:10 ping -c 4 host.docker.internal
PING host.docker.internal (172.17.0.1) 56(84) bytes of data.
64 bytes from host.docker.internal (172.17.0.1): icmp_seq=1 ttl=64 time=0.064 ms
64 bytes from host.docker.internal (172.17.0.1): icmp_seq=2 ttl=64 time=0.094 ms
64 bytes from host.docker.internal (172.17.0.1): icmp_seq=3 ttl=64 time=0.094 ms
64 bytes from host.docker.internal (172.17.0.1): icmp_seq=4 ttl=64 time=0.095 ms

--- host.docker.internal ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 74ms
rtt min/avg/max/mdev = 0.064/0.086/0.095/0.017 ms

推荐阅读