欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何解決Docker連接本地MySQL服務(wù)失敗的問題

 更新時(shí)間:2025年06月13日 15:00:07   作者:我想要身體健康  
這篇文章主要介紹了如何解決Docker連接本地MySQL服務(wù)失敗的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

問題描述

在學(xué)習(xí) Docker 和 Go 時(shí),遇到了一個(gè)連接 MySQL 數(shù)據(jù)庫(kù)失敗的問題。

具體情況如下:

使用以下命令運(yùn)行 Docker 容器:

docker run --rm -p 8080:8080/tcp --env-file .env my-project:latest

.env 文件中的內(nèi)容如下:

DB_HOST=127.0.0.1
DB_USERNAME=root
DB_NAME=mydbs
DB_PASS=root123
AUTH_GEN_URL=https://api.learning.mydbs.id

在 Windows 上使用 Docker Desktop,報(bào)錯(cuò)信息為:dial tcp 127.0.0.1:3306: connect: connection refused。

這意味著在 IP 127.0.0.1 和端口 3306 上沒有數(shù)據(jù)庫(kù)服務(wù)在監(jiān)聽。

問題分析

在默認(rèn)的網(wǎng)絡(luò)模式下,127.0.0.1 指的是容器內(nèi)部的地址,而不是主機(jī)的地址。

因此,當(dāng)容器嘗試連接 127.0.0.1:3306 時(shí),它實(shí)際上是在連接容器自身的 3306 端口,而不是主機(jī)上的 MySQL 服務(wù)。

解決方法

對(duì)于 Windows 和 Mac 用戶

在 Windows 和 Mac 上,可以使用 host.docker.internal 來(lái)代替 127.0.0.1。

這樣可以確保容器內(nèi)部的服務(wù)正確連接到運(yùn)行在主機(jī)上的 MySQL 實(shí)例。

修改后的 .env 文件如下:

DB_HOST=host.docker.internal
DB_USERNAME=root
DB_NAME=mydbs
DB_PASS=root123
AUTH_GEN_URL=https://api.learning.mydbs.id

這樣修改后,再次運(yùn)行 Docker 容器,問題應(yīng)能得到解決。

對(duì)于 Linux 用戶

在 Linux 上,解決這個(gè)問題更加簡(jiǎn)單,只需要在運(yùn)行 Docker 容器時(shí)添加 --network="host" 參數(shù)即可。

這樣,容器將直接使用主機(jī)的網(wǎng)絡(luò),127.0.0.1 將指向主機(jī)自身。

命令如下:

docker run --rm --network="host" --env-file .env my-project:latest

總結(jié)

以上是解決 Docker 連接本地 MySQL 服務(wù)失敗問題的詳細(xì)步驟。在不同操作系統(tǒng)上,解決方法有所不同:

  • Windows 和 Mac 用戶可以使用 host.docker.internal。
  • Linux 用戶可以使用 --network="host" 參數(shù)。

通過(guò)以上步驟,相信你已經(jīng)能夠成功解決 Docker 容器中無(wú)法連接本地 MySQL 數(shù)據(jù)庫(kù)的問題。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 防火墻控制Docker端口開放與關(guān)閉

    防火墻控制Docker端口開放與關(guān)閉

    本文主要介紹了防火墻控制Docker端口開放與關(guān)閉,通過(guò)實(shí)例演示了如何配置防火墻規(guī)則來(lái)實(shí)現(xiàn)對(duì)Docker端口的控制,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • 如何使用docker部署Dashdot工具箱

    如何使用docker部署Dashdot工具箱

    dashdot是一個(gè)簡(jiǎn)潔清晰的服務(wù)器數(shù)據(jù)儀表板,基于React實(shí)現(xiàn) ,主要是顯示操作系統(tǒng)、進(jìn)程、存儲(chǔ)、內(nèi)存、網(wǎng)絡(luò)這五個(gè)的數(shù)據(jù),這篇文章主要介紹了如何使用docker部署Dashdot工具箱,需要的朋友可以參考下
    2024-02-02
  • 以示例講解Clickhouse Docker集群部署以及配置

    以示例講解Clickhouse Docker集群部署以及配置

    這篇文章主要介紹了Clickhouse Docker集群部署及配置,示例講解的非常詳細(xì),希望可以幫助到有需要的小伙伴
    2021-08-08
  • 使用Docker安裝和配置 MySQL 數(shù)據(jù)庫(kù)的過(guò)程詳解

    使用Docker安裝和配置 MySQL 數(shù)據(jù)庫(kù)的過(guò)程詳解

    本文將介紹如何使用Docker來(lái)安裝和配置MySQL數(shù)據(jù)庫(kù),以便在開發(fā)和測(cè)試環(huán)境中快速搭建MySQL實(shí)例,本文也是介紹兩種方式進(jìn)行分別是“使用鏡像安裝”、“使用Docker Compose安裝”,感興趣的朋友一起看看吧
    2023-12-12
  • 基于Docker部署Dubbo+Nacos服務(wù)的過(guò)程

    基于Docker部署Dubbo+Nacos服務(wù)的過(guò)程

    這篇文章主要介紹了基于Docker部署Dubbo+Nacos服務(wù),本文介紹基于?Docker?部署一套?Dubbo?+?Nacos?的微服務(wù)環(huán)境,并解決容器里的?IP?及端口的訪問問題,需要的朋友可以參考下
    2023-02-02
  • 基于Docker+Jenkins實(shí)現(xiàn)自動(dòng)化部署的方法

    基于Docker+Jenkins實(shí)現(xiàn)自動(dòng)化部署的方法

    這篇文章主要介紹了基于Docker+Jenkins實(shí)現(xiàn)自動(dòng)化部署,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • docker部署RustDesk自建服務(wù)器的小結(jié)

    docker部署RustDesk自建服務(wù)器的小結(jié)

    本文詳細(xì)介紹了如何使用Docker部署RustDesk自建服務(wù)器,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • Docker 搭建私有倉(cāng)庫(kù)(registry、harbor)

    Docker 搭建私有倉(cāng)庫(kù)(registry、harbor)

    這篇文章主要介紹了Docker 搭建私有倉(cāng)庫(kù)(registry、harbor),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Docker基礎(chǔ)教程之Dockerfile語(yǔ)法詳解

    Docker基礎(chǔ)教程之Dockerfile語(yǔ)法詳解

    這篇文章主要給大家介紹了關(guān)于Docker基礎(chǔ)教程之Dockerfile語(yǔ)法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Docker具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 釋放Docker占用的存儲(chǔ)空間的幾種方法

    釋放Docker占用的存儲(chǔ)空間的幾種方法

    隨著Docker的廣泛應(yīng)用,我們經(jīng)常會(huì)遇到Docker占用過(guò)多存儲(chǔ)空間的問題,這可能是由于頻繁的鏡像拉取、容器創(chuàng)建和刪除等操作導(dǎo)致的,本文將介紹幾種方法來(lái)有效釋放Docker占用的存儲(chǔ)空間,需要的朋友可以參考下
    2024-06-06

最新評(píng)論