【问题标题】:Can't connect to Windows 10 Docker mysql无法连接到 Windows 10 Docker mysql
【发布时间】:2017-09-14 18:21:10
【问题描述】:

赢 10 Composer 版本 1.4.1 2017-03-10 09:29:45 PHP 7 npm/节点 码头工人 CE 阿帕奇 2.4 电源外壳 git BASH 外壳 drush(通过作曲家安装)

Noob Composer/Docker 技能

我有一个 docker config yml 指定如何启动 mysql 服务:

version: "2"
services:
  mysql:
    image: mysql:5.6
    ports:
      - 3306:3306
    volumes:
      - /data/nbif_mysql:/var/lib/mysql
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"

当我打电话时

#!/bin/bash
docker-compose up -d mysql

我看到容器正在运行:

PS C:\dev\appname> docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
    f1a0ecab8af6        mysql:5.6           "docker-entrypoint..."   2 hours ago         Up 5 seconds        0.0.0.0:3306->3306/tcp   appname_mysql_1

但是,注意报告的IP是0.0.0.0:3306->3306/tcp

所以当我尝试连接预期的 IP 时,它会失败:

ERROR 2003 (HY000): Can't connect to MySQL server on '172.17.0.1' (10060)

如何告诉 docker-compose 为 docker 使用预期的 IP? 这是设置问题,还是我需要做一些配置调整?

【问题讨论】:

    标签: mysql docker docker-compose


    【解决方案1】:

    当您将端口绑定到您的主机时,您必须使用localhost 而不是容器的 IP 地址,因为您没有分配任何本地 IP 地址。

    每个容器总是在一个孤立的网络(网桥)中运行,您的 compose 文件中的容器将能够通过它们的主机名找到其他容器,但在这些容器中中,它们与本地网络,这就是您无法访问它们的原因。

    在您的撰写文件中,您只有一个 mysql 容器,并且您在主机中绑定了该端口,因此访问该容器的唯一方法是使用 localhost:3306

    请记住,当您运行 docker 容器时,它不像主机网络中具有 IP 的服务器,它更像是具有隔离网络配置的虚拟机。

    查看此特定主题中的 docker-compose 文档: https://docs.docker.com/compose/networking

    更新:

    最终回答问题的链接是: https://docs.docker.com/engine/userguide/networking/default_network/custom-docker0/

    【讨论】:

    • 非常感谢。我会对此进行更多研究并更新。
    • 我的帖子询问为什么默认 IP 没有实现 - 这只是归因于我在 Windows 中的设置吗?为什么 172.17.0.1 在 Linux 结果环境中是一个看似常见的地址?
    • 我与 Windows 没有任何关系,实际上无论你是在 Windows、Linux 还是 Mac 中,因为 docker 容器是 linux 系统,所以 docker 创建了自己的网络接口,看看这个:docs.docker.com/engine/userguide/networking/default_network/…
    • 嘿,我想这就是我正在寻找的 - 使用该信息/链接更新您的答案
    • 已经完成了,如果正确你应该标记为答案。
    猜你喜欢
    • 1970-01-01
    • 2018-09-30
    • 2019-02-26
    • 2018-09-27
    • 2018-10-02
    • 1970-01-01
    • 2021-06-30
    • 2019-10-17
    • 2020-02-12
    相关资源
    最近更新 更多