docker容器內訪問宿主機的資源

2021-10-21 13:39:38 字數 1064 閱讀 7791

我們經常會在容器內訪問宿主機的資源

比如 nginx容器反向**其他容器或者宿主機的應用

如果nginx在容器內,方向**宿主機的應用,直接使用127.0.0.1 或者localhost是有問題的,因為宿主機的網路和容器網路不通

解決辦法

在linux下使用docker0網路,把127.0.0.1改為docker0網路172.17.0.1

2.docker v 20.10及更高版本

在linux上可以在啟動的時候新增–add-host=host.docker.internal:host-gateway

docker run --add-host=host.docker.internal:host-gateway -d be268578aa6c
docker-compose操作如下

extra_hosts:

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

此操作會在容器內部,新增一行/etc/hosts

172.17.0.1      host.docker.internal
在docker v 20.10以下,暫時不支援 --add-host=host.docker.internal:host-gateway命令列,但是我們可以進入容器內,手動新增一行host記錄

docker exec -it be268578aa6c sh

172.17.0.1 host.docker.internal

telnete host.docker.internal port

3.linux系統下使用host網路模式啟動

docker run --net=host -d be268578aa6c

在docker容器內訪問宿主機的mysql服務

1 mysql在宿主機預設監聽位址為127.0.0.1的3306埠監聽 2 當在docker容器內部執行ifconfig後,會獲得 2,這個ip位址,在宿主機上執行ifconfig,會有docker0這個網橋,宿主機和docker容器就是通過這個docker0網橋進行通訊的,宿主機在此網橋上的ip位...

docker宿主機訪問docker容器服務失敗

原因 因為docker的虛擬ip網段是172.17.與區域網的ip網段172.17衝突了,所以有兩種方式 解決方法 一 修改docker網絡卡資訊,將網段改為與區域網不同的即可 linux修改方法 第一步 刪除原有配置 sudo service docker stop sudo ip link se...

Docker容器訪問宿主機網路

業務請求量小的時候,我們會把一些工程部署到同一臺機器上。這些工程之間也會相互訪問。如果是http的介面,我們最方便的是使用localhost帶地本機的ip。不過結合docker容器後出現了問題。docker容器中localhost表示容器的ip位址。不是宿主機ip。其實docker容器執行的時候有h...