[請益] docker容器連線不上問題

看板Soft_Job作者 (脫俗仙子談無慾)時間6年前 (2019/09/07 18:02), 6年前編輯推噓12(12016)
留言28則, 9人參與, 6年前最新討論串1/1
最近在研究docker 容器 想用寫好的go去連mysql 這是我的docker-compose檔 https://pastebin.com/embed_js/2x5MgY2q 這是go連線到mysql的設定 https://pastebin.com/embed_js/KrnH2DZ7 當我docker-compose up之後 我從終端機連到mysql 用root權限是可以進去的 也看到已經create好的db 不過從專案那邊要連過去的時候(我開api 再用postman去打那隻api) 專案的log會跳出 mysql connect refused 但我已經在初始化db的時候去update root可以從其他ip連線進來 UPDATE user SET Host='%' WHERE User='root' AND Host='localhost' LIMIT 1; flush privileges; CREATE DATABASE IF NOT EXISTS rockman; 請問有人可以幫幫忙嗎XD 1000p(不含稅) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.180.20 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1567850573.A.D45.html

09/07 18:23, 6年前 , 1F
應該是config的port錯了 應該是3306
09/07 18:23, 1F
我改3306 但是在BUILD的時候 說這個port被佔用了 所以改回33060 改完之後還是拒絕連線 不過我直接把整個docker image reset之後 倒是知道我之前vendor那邊有很多問題重抓了

09/07 18:31, 6年前 , 2F
host應該可以改用hostname代替ip
09/07 18:31, 2F

09/07 18:33, 6年前 , 3F
直接改成mysql
09/07 18:33, 3F

09/07 18:43, 6年前 , 4F
好 我等下試試看
09/07 18:43, 4F

09/07 20:37, 6年前 , 5F
有用 network 就不用 links 了
09/07 20:37, 5F

09/07 20:38, 6年前 , 6F
composer version 可以改用 3
09/07 20:38, 6F

09/07 20:53, 6年前 , 7F
那個 ... 密碼有設對嗎
09/07 20:53, 7F

09/07 21:05, 6年前 , 8F
database.host改mysql,database.port改3306
09/07 21:05, 8F
3306在BUILD的時候說被占住了

09/07 21:20, 6年前 , 9F
密碼有對 我有用exec進去看過 可以進去
09/07 21:20, 9F
3306會跳這個 ERROR: for mysql-db Cannot start service mysql: driver failed programming external connectivity on endpoint mysql-db (9714bb03b36d0bf70b39c08995ebc4bda51716af934a476e6edc20a7d9fe43e4): Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use ※ 編輯: MOONY135 (123.194.180.20 臺灣), 09/07/2019 21:50:22

09/07 22:51, 6年前 , 10F
go連接3306是mysql那台容器的3306不是你本地的3306,
09/07 22:51, 10F

09/07 22:51, 6年前 , 11F
跟衝突沒關係,你甚至可以直接移除掉docker-compose m
09/07 22:51, 11F

09/07 22:51, 6年前 , 12F
ysql的port設定
09/07 22:51, 12F

09/07 22:53, 6年前 , 13F
我有確定把DOCKER的images全清了 再docker-compose up
09/07 22:53, 13F

09/07 22:53, 6年前 , 14F
不過還是會跳這個 這樣是port設定有問題嗎
09/07 22:53, 14F

09/07 23:34, 6年前 , 15F
上面的意思是你要用mysql container的IP連
09/07 23:34, 15F
更新進度 我把我電腦裡面的MYSQL關掉之後 用POSTMAN打本地端的專案(在容器中運行)就可以動了 暫時ok了 但還有其他咬問題 可是算前進一大步了 到這邊上面有推文的一個500p 稅前 感謝大家 ※ 編輯: MOONY135 (123.194.180.20 臺灣), 09/08/2019 00:01:43

09/08 00:02, 6年前 , 16F
他都在同一個網段下面了,應該不用知道mysql server的ip
09/08 00:02, 16F

09/08 00:05, 6年前 , 17F
然後記得好像是用容器名稱當作ip位置
09/08 00:05, 17F

09/08 00:05, 6年前 , 18F

09/08 00:05, 6年前 , 19F
ker-compose.html 可以參考看看
09/08 00:05, 19F

09/08 00:05, 6年前 , 20F
啊抱歉忘記縮網址
09/08 00:05, 20F

09/08 00:36, 6年前 , 21F
是go的config改 不是docker-compose的port
09/08 00:36, 21F

09/08 00:43, 6年前 , 22F
docker-compose裡的port是容器對應本機
09/08 00:43, 22F

09/08 00:44, 6年前 , 23F
port會衝突就是你本機3306已經有在使用
09/08 00:44, 23F

09/08 00:44, 6年前 , 24F
所以才開不起來
09/08 00:44, 24F

09/08 01:04, 6年前 , 25F
收到你的P幣了 謝謝
09/08 01:04, 25F

09/09 00:50, 6年前 , 26F
可能是因為你本機上已經有mysql 所以3306已經被佔用了
09/09 00:50, 26F

09/11 11:52, 6年前 , 27F
docket-compose mysql 設定那邊做port mapping啊 33
09/11 11:52, 27F

09/11 11:52, 6年前 , 28F
06:本機沒在使用的port
09/11 11:52, 28F
文章代碼(AID): #1TSu1Dr5 (Soft_Job)