Docker 取得宿主機內網IP
在使用 Docker 容器時,我們經常需要從容器內部連接到宿主機(也就是運行 Docker 的電腦)上的服務。但是,宿主機的 IP 地址可能會變動,特別是在不同的網絡環境中,每次都要手動查找和輸入 IP 地址既麻煩又容易出錯。
Mac 和 Windows的 Docker Desktop :
Docker Desktop 提供了一個特殊的 DNS 名稱 host.docker.internal
,它可以自動解析為宿主機的 IP 地址。這樣無論宿主機的 IP 如何變化,容器內部都可以使用這個固定的名稱來訪問宿主機。
Linux:
無法默認不支持直接使用 host.docker.internal
需要額外配置 。
- Docker run
需添加--add-host=host.docker.internal:host-gateway
- Docker Compose
需額外添加配置 extra_hosts 參數
services:
node-test:
image: node:16-alpine
container_name: node-test
stdin_open: true
tty: true
extra_hosts: # <--- 這邊這邊
- "host.docker.internal:host-gateway"