V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
edk24
V2EX  ›  Docker

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

  •  
  •   edk24 ·
    edk24 · 2019-05-11 10:57:08 +08:00 · 5042 次点击
    这是一个创建于 2025 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚玩 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....

    13 条回复    2019-07-24 22:16:28 +08:00
    gjquoiai
        1
    gjquoiai  
       2019-05-11 11:08:03 +08:00
    那么问题来了,你没用命令行和 gui 是怎么知道 mysql 连不上的?
    lxy42
        2
    lxy42  
       2019-05-11 11:25:02 +08:00 via Android
    我猜是 MySQL 设置为只能 localhost 访问,修改配置文件的 host 试试。
    dilu
        3
    dilu  
       2019-05-11 12:40:07 +08:00 via Android
    你先进入到容器里面连一下,如果能连上说明 mysql 没有开启允许远程连接,如果不能连上说明 mysql 没有启动 自己去看日志找原因
    chwech
        4
    chwech  
       2019-05-11 13:21:51 +08:00 via iPhone
    和你用一样的镜像,正在探索中
    edk24
        5
    edk24  
    OP
       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
        6
    edk24  
    OP
       2019-05-11 17:46:37 +08:00
    @dilu 已经为 root 设置 host 为% 开启远程连接了

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

    任何操作后我都 restart 了
    grantonzhuang
        7
    grantonzhuang  
       2019-05-11 17:49:44 +08:00 via Android
    telnet 结果如何
    megachweng
        8
    megachweng  
       2019-05-11 17:59:08 +08:00 via iPhone
    应该是 mysql 只监听了 127.0.0.1,或者没有配置数据库用户访问权限
    HuHui
        9
    HuHui  
       2019-05-11 18:16:09 +08:00 via Android
    配置 启动命令发出来看看
    HuHui
        10
    HuHui  
       2019-05-11 18:30:35 +08:00   ❤️ 2
    看文档描述啊
    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
        11
    edk24  
    OP
       2019-05-11 19:53:24 +08:00
    @HuHui
    明白了, 我英语极差, 机翻随便看看怎么用就开始搞事了...

    感谢
    Vanson
        12
    Vanson  
       2019-07-24 17:39:15 +08:00
    docker run --name=[容器名称] -p 8081:80 -p 3401:3306 -v [项目代码路径]:/app mattrayner/lamp:latest
    edk24
        13
    edk24  
    OP
       2019-07-24 22:16:28 +08:00
    @Vanson 谢谢, 这个镜像似乎是不许外部访问。 除非重新配置一波。 我在用另一个 lamp 镜像 tutum/lamp
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1054 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:55 · PVG 03:55 · LAX 11:55 · JFK 14:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.