已經(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