Docker 新手警報(bào)。希望這不是一個(gè)愚蠢的問題,但我似乎無(wú)法弄清楚發(fā)生了什么。我正在嘗試創(chuàng)建一個(gè) docker-compose 文件,該文件創(chuàng)建一個(gè)帶有已安裝卷的 mysql 數(shù)據(jù)庫(kù)和一個(gè)連接到 mysql 數(shù)據(jù)庫(kù)的 go webserver 應(yīng)用程序。這是我的 docker-compose 文件:services: db: image: mysql:8.0.2 environment: MYSQL_ROOT_PASSWORD: test MYSQL_DATABASE: northernairport ports: - "3306:3306" volumes: - /data:/var/lib/mysql web: depends_on: - db build: . ports: - "8080:8080"雖然我的 go 應(yīng)用程序似乎無(wú)法連接到我的 mysql 數(shù)據(jù)庫(kù),但我認(rèn)為“depends_on”將確保這是可能的。我得到的錯(cuò)誤:panic: dial tcp 127.0.0.1:3306: getsockopt: connection refused誰(shuí)能告訴我我在這里做錯(cuò)了什么?謝謝。
2 回答

紅顏莎娜
TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
onlydepends_on
控制服務(wù)的構(gòu)建和啟動(dòng)順序。
您的實(shí)際問題更有可能是您使用了從 Web 應(yīng)用程序到數(shù)據(jù)庫(kù)的錯(cuò)誤地址。我看到您沒有定義任何網(wǎng)絡(luò),因此您正在使用default
為您的應(yīng)用程序創(chuàng)建的網(wǎng)絡(luò)docker-compose
。這將在默認(rèn)網(wǎng)絡(luò)的 DNS 上按名稱發(fā)布每個(gè)服務(wù)。
因此,您的 Web 應(yīng)用程序可能應(yīng)該用作db:3306
數(shù)據(jù)庫(kù)地址,而不是localhost:3306
錯(cuò)誤127.0.0.1:3306
消息中指示的地址。

一只斗牛犬
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
該ports
部分用于以下列格式將容器端口與主機(jī)映射ports (HOST:CONTAINER)
。這意味著您正在嘗試訪問主機(jī)的機(jī)器,而是配置web
要連接的應(yīng)用程序db:3306
。
- 2 回答
- 0 關(guān)注
- 159 瀏覽
添加回答
舉報(bào)
0/150
提交
取消