我在设置本地git存储库时遇到了一些问题。我刚接触docker,所以这个问题可能很幼稚,但我仍然找不到它。
所以我的想法是:我想创建一个带有gogs (gogs/gogs image)的容器,并将其连接到mysql容器。
为此,我创建了docker-compose.yml文件。
version: '3'
services:
db:
image: mysql
ports:
- "10023:3306"
environment:
- MYSQL_ROOT_PASSWORD=root!
ui:
image: phpmyadmin/phpmyadmin
ports:
- "8989:80"
links:
- db:mysql
repo:
image: gogs/gogs
ports:
- "10022:22"
- "10080:3000"
volumes:
- /tmp/gogs:/data gogs/gogs
links:
- db:mysql我都将phpmyadmin放在我的设置中,这样我就可以很容易地测试mysql是否启动并响应其他容器。
遗憾的是,这个环境无法工作,当在localhost:10080上访问gogs安装页面并尝试创建一个新的存储库时,它会显示tcp连接已被拒绝。以下是错误消息的输出:
dial tcp 127.0.0.1:10023: getsockopt: connection refused这很奇怪,因为我可以通过phpmyadmin访问mysql容器。我还可以创建gogs数据库。
以前有没有人遇到过这个问题?
发布于 2018-02-08 01:09:28
发布于 2018-02-08 17:29:32
非常感谢gogsdoc_db_1,他/她的回答非常完美。我会试着解释我做错了什么,所以也许这会对像我这样的docker新人有所帮助。
就像蓝芯说的那样。你不应该在你的docker容器中使用localhost或127.0.0.1。
为什么不行?
基本上,当你使用docker-compose时,它会自动为你的应用程序创建共享网络,这意味着你不应该使用发布的端口。在可能的情况下,我必须使用端口3306,而不是10023来连接到我的数据库容器。
如果我想从我的本地机器连接到mysql,我仍然应该使用端口10023。
所以我现在的配置是


附注:在安装gogs之前,不要忘记创建数据库
https://stackoverflow.com/questions/48668793
复制相似问题