docker 装的 lamp 环境, 映射了 80 和 3306. 3306 连不上

2019-05-11 10:57:08 +08:00
 edk24

刚玩 docker 不久, 搞不明白什么情况

拉镜像启动了个容器. 80 可以访问, 3306 却连不上

试过 localhost 127.0.0.1 172.17.0.1 都不行

在容器内使用 mysql 连接或者 phpmyadmin 都正常.

yuxiaobo@yuxiaobo-PC:~/Desktop$ docker ps -a
CONTAINER ID        IMAGE                    COMMAND             CREATED             STATUS              PORTS                                        NAMES
b367eab7d585        mattrayner/lamp:latest   "/run.sh"           7 days ago          Up 2 days           0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp   lamp

也试过另外一个镜像, 结果都是宿主机连不上.

求大佬解惑

不喜欢 mysql 命令行和 phpmyadmin....

4889 次点击
所在节点    Docker
13 条回复
gjquoiai
2019-05-11 11:08:03 +08:00
那么问题来了,你没用命令行和 gui 是怎么知道 mysql 连不上的?
lxy42
2019-05-11 11:25:02 +08:00
我猜是 MySQL 设置为只能 localhost 访问,修改配置文件的 host 试试。
dilu
2019-05-11 12:40:07 +08:00
你先进入到容器里面连一下,如果能连上说明 mysql 没有开启允许远程连接,如果不能连上说明 mysql 没有启动 自己去看日志找原因
chwech
2019-05-11 13:21:51 +08:00
和你用一样的镜像,正在探索中
edk24
2019-05-11 17:44:17 +08:00
@dilu
@gjquoiai 在容器内可以用 mysql 命令行连接, lamp 也自带了 phpmyadmin.

但宿主机不论 localhost 还是 127.0.0.1 亦或者是 172.17.0.1 都无法连接

已为 root 用户设置 host 字段为 %.

我得到的信息不是密码或用户名错误, 而是宿主机根本不能连接到 mysql
edk24
2019-05-11 17:46:37 +08:00
@dilu 已经为 root 设置 host 为% 开启远程连接了

要么无法连接, 要么拒绝连接

任何操作后我都 restart 了
grantonzhuang
2019-05-11 17:49:44 +08:00
telnet 结果如何
megachweng
2019-05-11 17:59:08 +08:00
应该是 mysql 只监听了 127.0.0.1,或者没有配置数据库用户访问权限
HuHui
2019-05-11 18:16:09 +08:00
配置 启动命令发出来看看
HuHui
2019-05-11 18:30:35 +08:00
看文档描述啊
MySQL Databases
By default, the image comes with a root MySQL account that has no password. This account is only available locally, i.e. within your application. It is not available from outside your docker image or through phpMyAdmin.

When you first run the image you'll see a message showing your admin user's password. This user can be used locally and externally, either by connecting to your MySQL port (default 3306) and using a tool like MySQL Workbench or Sequel Pro, or through phpMyAdmin.

If you need this login later, you can run docker logs CONTAINER_ID and you should see it at the top of the log. https://hub.docker.com/r/mattrayner/lamp
edk24
2019-05-11 19:53:24 +08:00
@HuHui
明白了, 我英语极差, 机翻随便看看怎么用就开始搞事了...

感谢
Vanson
2019-07-24 17:39:15 +08:00
docker run --name=[容器名称] -p 8081:80 -p 3401:3306 -v [项目代码路径]:/app mattrayner/lamp:latest
edk24
2019-07-24 22:16:28 +08:00
@Vanson 谢谢, 这个镜像似乎是不许外部访问。 除非重新配置一波。 我在用另一个 lamp 镜像 tutum/lamp

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/563080

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX