作者MOONY135 (脱俗仙子谈无慾)
看板Soft_Job
标题[请益] docker容器连线不上问题
时间Sat Sep 7 18:02:51 2019
最近在研究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://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1567850573.A.D45.html
1F:推 BigTounge: 应该是config的port错了 应该是3306 09/07 18:23
我改3306 但是在BUILD的时候
说这个port被占用了 所以改回33060
改完之後还是拒绝连线
不过我直接把整个docker image reset之後
倒是知道我之前vendor那边有很多问题重抓了
2F:推 BigTounge: host应该可以改用hostname代替ip 09/07 18:31
3F:推 BigTounge: 直接改成mysql 09/07 18:33
4F:→ MOONY135: 好 我等下试试看 09/07 18:43
5F:→ sextitanic: 有用 network 就不用 links 了 09/07 20:37
6F:→ sextitanic: composer version 可以改用 3 09/07 20:38
7F:→ justben: 那个 ... 密码有设对吗 09/07 20:53
8F:推 ripple0129: database.host改mysql,database.port改3306 09/07 21:05
3306在BUILD的时候说被占住了
9F:→ MOONY135: 密码有对 我有用exec进去看过 可以进去 09/07 21:20
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
10F:推 ripple0129: go连接3306是mysql那台容器的3306不是你本地的3306, 09/07 22:51
11F:→ ripple0129: 跟冲突没关系,你甚至可以直接移除掉docker-compose m 09/07 22:51
12F:→ ripple0129: ysql的port设定 09/07 22:51
13F:→ MOONY135: 我有确定把DOCKER的images全清了 再docker-compose up 09/07 22:53
14F:→ MOONY135: 不过还是会跳这个 这样是port设定有问题吗 09/07 22:53
15F:推 googoo1102: 上面的意思是你要用mysql container的IP连 09/07 23:34
更新进度 我把我电脑里面的MYSQL关掉之後
用POSTMAN打本地端的专案(在容器中运行)就可以动了
暂时ok了 但还有其他咬问题 可是算前进一大步了
到这边上面有推文的一个500p 税前 感谢大家
※ 编辑: MOONY135 (123.194.180.20 台湾), 09/08/2019 00:01:43
16F:推 s77485p: 他都在同一个网段下面了,应该不用知道mysql server的ip 09/08 00:02
17F:推 s77485p: 然後记得好像是用容器名称当作ip位置 09/08 00:05
19F:→ s77485p: ker-compose.html 可以参考看看 09/08 00:05
20F:→ s77485p: 啊抱歉忘记缩网址 09/08 00:05
21F:推 BigTounge: 是go的config改 不是docker-compose的port 09/08 00:36
22F:推 BigTounge: docker-compose里的port是容器对应本机 09/08 00:43
23F:→ BigTounge: port会冲突就是你本机3306已经有在使用 09/08 00:44
24F:→ BigTounge: 所以才开不起来 09/08 00:44
25F:推 BigTounge: 收到你的P币了 谢谢 09/08 01:04
26F:推 ckmonkey06: 可能是因为你本机上已经有mysql 所以3306已经被占用了 09/09 00:50
27F:→ badboy821022: docket-compose mysql 设定那边做port mapping啊 33 09/11 11:52
28F:→ badboy821022: 06:本机没在使用的port 09/11 11:52