gpt4 book ai didi

mysql - 无法连接到 Windows 10 Docker mysql

转载 作者:行者123 更新时间:2023-11-29 10:52:29 24 4
gpt4 key购买 nike

赢10 Composer 版本1.4.1 2017-03-10 09:29:45PHP 7npm/节点 docker CE Apache 2.4电源外壳git BASH shelldrush(通过 Composer 安装)

菜鸟 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?这是一个设置问题,还是我需要做一些配置调整?

最佳答案

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

每个容器始终在隔离的网络(网桥)中运行,撰写文件中的容器将能够通过主机名找到其他容器,但在这些容器内部,它们与其他容器隔离本地网络,因此您无法联系到他们。

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

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

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

更新:

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

关于mysql - 无法连接到 Windows 10 Docker mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43480169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com