Docker在Windows 10中没有默认的机器

我在Windows 10 64位安装了Docker。 build成也是正确的,这是一个专业版,所以它不应该是一个问题。

Docker激活了Hyper-V并创build了docker机器,我可以访问该机器以在localhost中加载页面。 同步也在工作,所以我的Docker容器正在工作(我使用Laradock)。

我的问题是当我尝试从我的主机连接到MySQL时,我无法通过本地主机或127.0.0.1连接。 端口也正确我也检查过。

修改:如果我把主机框留空,PhpMyAdmin工作。 但是我仍然无法通过SQLYog或其他客户端进行连接。

我试着做docker-machine ip ,我得到这个:

Error: No machine name(s) specified and no "default" machine exists.

这是我的docker ps输出:

 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 85cce33afbe2 laradock_nginx "nginx" 12 minutes ago Up 12 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp laradock_nginx_1 f2ce18b4591c laradock_php-fpm "php-fpm" 12 minutes ago Up 12 minutes 9000/tcp laradock_php-fpm_1 23bf95305334 laradock_workspace "/sbin/my_init" 12 minutes ago Up 12 minutes 0.0.0.0:2222->22/tcp laradock_workspace_1 f7b87216173b laradock_phpmyadmin "/run.sh phpmyadmin" 12 minutes ago Up 12 minutes 0.0.0.0:8080->80/tcp laradock_phpmyadmin_1 4a87449e2bb6 laradock_mysql "docker-entrypoint.sh" 12 minutes ago Up 12 minutes 3306/tcp, 0.0.0.0:3306->1234/tcp laradock_mysql_1 

修复之后:

我仍然没有得到'默认'的机器,不能做docker-machine ip但通过将端口映射从1234改变到3306我得到了SQLYog也工作。 现在会为我做。

所以我映射对面。 我必须从1234映射到3306,这意味着我必须在我的docker-compose.yml文件中执行“1234:3306”。 这也工作。 :d

下面的讨论,解决了我的问题,但我仍然可以使用一些解决scheme,为什么'默认'机器不工作,我不能做docker-machine ip

docker-machine创build的VirtualBox虚拟机(包括通常在Toolbox安装期间创build的默认虚拟机)将不再启动。 这些虚拟机不能与Docker for Windows并行使用。

Docker for Windows

你不使用docker-machine 。 你用docker ps列出容器。 如果你不能访问MySQL容器,那么你可能已经忘记了暴露这个端口。

我的问题是当我尝试从我的主机连接到MySQL时,我无法通过本地主机或127.0.0.1连接。

听起来像你连接错误。 这绝对是运行。

 4a87449e2bb6 laradock_mysql "docker-entrypoint.sh" 12 minutes ago Up 12 minutes 3306/tcp, 0.0.0.0:3306->1234/tcp 

虽然,不清楚你为什么映射到港口1234