docker容器內(nèi)訪問宿主機(jī)127.0.0.1服務(wù)

已經(jīng)通過docker啟動(dòng)的業(yè)務(wù)服務(wù)。在宿主機(jī)中直接通過http://127.0.0.1:3306 可以直接訪問數(shù)據(jù)庫,但是通過docker訪問缺不行,訪問url:http://127.0.0.1:3306 或者http://localhost:3306

原因分析

docker是一個(gè)虛擬環(huán)境,127.0.0.1和localhost指的是虛擬環(huán)境內(nèi)部,而不是外部宿主機(jī),所以無法這樣訪問.

解決方案

1、 對于mac和windows,可以使用host.docker.internal替換127.0.0.1,如http://host.docker.internal:3306 (親測好使)

2、對于Linux可以采用如下方案: 創(chuàng)建一個(gè)橋接網(wǎng)絡(luò)

下面的localNet是網(wǎng)絡(luò)名字,可自行修改;關(guān)于192.168.0.0這個(gè)子網(wǎng),也可以自行定義.

默認(rèn)按照下面的命令,執(zhí)行后將可以通過192.168.0.1訪問宿主機(jī).

docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 localNet

使用192.168.0.1替換127.0.0.1,如http://192.168.0.1:3306

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容