问题
windows系统启动docker,Navicat连接失败问题
原因
之所以在 Windows 主机上出现端口映射“不起作用”的情况,是因为在Linux上,docker 守护进程(和您的容器)在 Linux 机器本身上运行,因此“localhost”也是容器在其上运行的主机,并且端口已映射到该主机。
相对地,在 Windows(和 OS X)上,docker 守护程序和您的容器无法在本地运行,因此只有 docker 客户端在 Windows 机器上运行,而守护程序(和您的容器)在运行Linux的 VirtualBox 虚拟机中运行。
启动MySQL的docker镜像
解决
于是我们通过以下命令:
docker-machine ip default
找到这个Linux的ip地址,一般情况下这个地址是 192.168.99.100。
总结
在 Windows(和 OS X)系统上,docker 守护程序和您的容器无法在本地运行,因此只有 docker 客户端在 Windows 机器上运行,而守护程序(和您的容器)在运行Linux的 VirtualBox 虚拟机中运行。