我在Windows 10 64bit中安装了Docker。内置也是正确的,它是专业版,所以它不应该是一个问题。
Docker激活了Hyper-V并创建了docker机器,我可以在localhost中访问该机器页面。同步也在工作,所以我的Docker容器整体工作(我使用Laradock)。
我的问题是当我尝试从主机连接到MySQL时,我无法通过localhost或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,这意味着我必须做" 1234:3306"在我的docker-compose.yml文件中。这也有效。 :d
下面的讨论解决了我的问题,但我仍然可以使用一些解决方案来解决为什么'默认'机器无法运行,我无法docker-machine ip
。
答案 0 :(得分:2)
使用docker-machine创建的VirtualBox VM(包括通常在Toolbox安装期间创建的默认VM)将不再启动。这些虚拟机不能与Docker for Windows并排使用。
您不能使用docker-machine
。您使用docker ps
列出容器。如果您无法访问MySQL容器,那么您可能忘记了暴露端口。
我的问题是当我尝试从主机连接到MySQL时,我无法通过localhost或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