【发布时间】:2021-02-12 18:37:48
【问题描述】:
事实证明,下面提到的 Docker/Windows 问题的原因是我这边的 Hyper-V 的本地网络问题。所以这与 Docker 在 Windows 和 Linux 上的区别无关,也与 MariaDB 没有任何关系。我想删除该问题,但不鼓励这样做,因为它已经得到了答案。
我是 docker 新手,但不是 MySQL。我想在 Docker 中使用 MariaDB。我在 Windows 10 和 Ubuntu 上都创建了 Docker 安装。
对于 MariaDB 容器,我按照https://mariadb.com/kb/en/installing-and-using-mariadb-via-docker/ 此处的描述进行操作,因为它似乎比这更准确:https://hub.docker.com/_/mariadb。
我使用以下方法创建了一个 MariaDB 容器:
docker run --name mariadb -e MYSQL_ROOT_PASSWORD=test -d mariadb:latest
“最新”拉取 MariaDB 服务器 10.5.8。
我验证在my.cnf中启用了通过端口3306的tcp访问
[client-server]
port=3306
从容器内部运行 MySQL 客户端工作
docker exec -it MariaDB MySQL -u root -p
从主机运行 MySQL 客户端
mysql -h 172.17.0.2 -u root -p
适用于我的 Ubuntu 主机,但不适用于我的 Windows 10 主机。在 Windows 上,该命令会在一段时间后返回而没有任何消息。
你能告诉我原因并帮助我吗?
【问题讨论】:
-
我认为我的办公室 PC 遇到了网络问题。从docs.docker.com/docker-for-windows/networking 我了解到,在 Windows 上我必须使用 -p 端口映射。我已经尝试过了,但没有成功。现在我在另一台 PC(我的家用 PC)上设置了 Docker 和 MariaDB 容器,它立即工作。我想我可能应该删除这个问题并创建一个与 MariaDB 无关的新的更通用的网络问题。