今天用docker跑乙個fastapi程式,測試期間這個程式需要訪問我本機的mysql,但是發現訪問不到,docker容器內的ip是172.17.0.1,mysql的位址不論寫localhost還是127.0.0.1或者172.17.0.1都訪問不到。
其實docker容器執行的時候有host
、bridge
、none
三種網路可供配置。預設是bridge
,即橋接網路,以橋接模式連線到宿主機;host
是宿主網路,即與宿主機共用網路;none
則表示無網路,容器將無法聯網。
from
因此只要設定為host網路即可,比如
docker run -it --name api_test --network host e4339467458d
Docker容器訪問宿主機網路
業務請求量小的時候,我們會把一些工程部署到同一臺機器上。這些工程之間也會相互訪問。如果是http的介面,我們最方便的是使用localhost帶地本機的ip。不過結合docker容器後出現了問題。docker容器中localhost表示容器的ip位址。不是宿主機ip。其實docker容器執行的時候有h...
docker訪問宿主機MySQL
docker內部訪問宿主及mysql 有時mysql安裝在宿主機中,而服務在docker容器中,此時可以通過通過以下兩張方式訪問 方法一啟動docker時使用 net host net host這個引數,讓容器執行在宿主機相同的網路 此時可以通過127.0.0.1直接連線mysql 方法二使用doc...
docker宿主機訪問docker容器服務失敗
原因 因為docker的虛擬ip網段是172.17.與區域網的ip網段172.17衝突了,所以有兩種方式 解決方法 一 修改docker網絡卡資訊,將網段改為與區域網不同的即可 linux修改方法 第一步 刪除原有配置 sudo service docker stop sudo ip link se...