3 回答

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊
它必須為 docker 內(nèi)部 IP 公開一個(gè)端口,但是每次重新啟動(dòng)時(shí)都可以更改 IP。要將端口映射到本地主機(jī),您可以使用標(biāo)志-p 127.0.0.1:3306:3306
要為 docker 容器指定 IP,您可以創(chuàng)建自己的用戶定義的虛擬網(wǎng)絡(luò)并在啟動(dòng)容器時(shí)在此網(wǎng)絡(luò)上綁定 IP。
docker network create --subnet=192.168.101.0/24 test
docker run -d --name db1 --network test --ip=192.168.101.10 -e MYSQL_ROOT_PASSWORD=12345 mysql:5.7
mysql -h 192.168.101.10 -uroot -p12345
另外,請(qǐng)確保 MySQL 已啟動(dòng)。您可以使用 檢查狀態(tài)docker ps并使用 記錄docker logs db1。其中db1用標(biāo)志指定的名稱--name。

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
解決方案不是在 Docker MySQL 上工作,而是在基于 Linux 的 Docker 上工作,并使用 mysql + go on it。
創(chuàng)建了一個(gè) Docker 鏡像,它是 Ubuntu 18.04 + Mysql Server 5.7 + Golang 1.13 的組合。在Docker Hub上可用。
拉取圖像并使用以下命令運(yùn)行它:-
拉取鏡像后,您可以使用以下命令啟動(dòng) mysql 服務(wù)器 -
/etc/init.d/mysql 啟動(dòng)

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊
您需要使用 docker-p
端口公開 MySQL 端口,例如
docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 33060:3306 -d mysql:5.7
然后標(biāo)準(zhǔn) MySQL 應(yīng)用程序端口 3306 將在您的主機(jī) IP 上映射到端口 33060。然后在您的 golang 應(yīng)用程序配置中使用該 IP 和端口。
同樣正如@Adrian 指出的那樣,等待 MySql 容器完全啟動(dòng)。您可以通過 觀看它的日志docker logs -f <CONTAINER_UD>
。一旦您看到它在本地端口 3306 上進(jìn)行偵聽,您的應(yīng)用程序應(yīng)該能夠連接。
- 3 回答
- 0 關(guān)注
- 140 瀏覽
添加回答
舉報(bào)