事实证明,下面询问的Docker/Windows上问题的原因是我这边的Hyper-V出现了本地网络问题。因此,这与Docker on Windows和Linux之间的区别无关,也与MariaDB没有任何关系。我想删除这个问题,但我不鼓励这样做,因为它已经得到了答案。
我是docker新手,但不是MySQL新手。我想在Docker里玩MariaDB。我在Windows10和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主机上运行,但不能在我的Windows10主机上运行。在Windows上,该命令在一段时间后返回,没有任何消息。
你能告诉我原因并帮助我吗?
发布于 2021-02-13 02:53:29
更新您的命令,在Ubuntu系统的docker中运行mysql:
docker run --name mariadb -e MYSQL_ROOT_PASSWORD=test -d mariadb:latest --port 3306:3306在Windows和Linux中检查WSL网络适配器的IPv4地址
打开powershell并执行ifconfig命令,然后找到WSL网络适配器:
Ethernet adapter vEthernet (WSL):
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::e96c:c3d6:464e:2a3b%72
IPv4 Address. . . . . . . . . . . : 172.20.240.1
Subnet Mask . . . . . . . . . . . : 255.255.240.0
Default Gateway . . . . . . . . . :你的Windows是172.20.240.1
现在使用ip a命令找出Linux主机的IP地址,并查看与Windows相同网络中的IP地址:
5: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:ce:28:8e brd ff:ff:ff:ff:ff:ff
inet 172.20.252.177/20 brd 172.20.255.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fece:288e/64 scope link
valid_lft forever preferred_lft forever从windows连接到linux服务器
mysql -u root -h 172.20.252.177 -P 3306 -p
linux与Windows上的Docker
在Linux上,docker在您的系统中以本机方式工作。目前还没有针对Windows的官方docker版本。这意味着你需要在Windows(以及MacOS )中模拟linux机器,并在那里运行docker守护进程。
在模拟linux时,系统管理程序会为模拟的系统创建新的网络,因此docker不会在localhost上运行。
对于用户来说,主要的区别是,您不能访问在docker中运行的应用程序,因为它运行在VM中,而VM有自己的网络IP。
另一个区别是资源的可用性。在linux中,docker守护程序可以访问您的所有资源(CPU、内存、硬盘、网络等)。当然,您可以为它创建配额,但目前并不关心它。
在Windows中,您运行VM并将一些有限的资源分配给模拟的Linux。例如,20 GB硬盘、1vCPU和2 GB Ram。这在影响应用程序性能的情况下是很重要的。在windows中,它们将比在Linux中慢(如果需要更多的资源)。
然而,当我在Windows上工作时。我喜欢它,因为我可以创建docker VM的快照,并且可以将其复制到另一台计算机上。这是惊人的,因为你不需要配置系统,当你安装或更换电脑。
https://stackoverflow.com/questions/66177297
复制相似问题