Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
连接到Docker容器上运行的mysql_Mysql_Macos_Configuration_Docker_Remote Access - Fatal编程技术网

连接到Docker容器上运行的mysql

连接到Docker容器上运行的mysql,mysql,macos,configuration,docker,remote-access,Mysql,Macos,Configuration,Docker,Remote Access,我试图在Docker(安装了Docker Toolbox for Mac)容器上运行mysql服务器,并从运行OS X Yosemite的机器上访问它。官方回购协议的文档没有解释如何从docker主机外部连接 我已使用创建了一个容器,如下所示: $ docker pull mysql $ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest $ docker inspect CONTAIN

我试图在Docker(安装了Docker Toolbox for Mac)容器上运行mysql服务器,并从运行OS X Yosemite的机器上访问它。官方回购协议的文档没有解释如何从docker主机外部连接

我已使用创建了一个容器,如下所示:

$ docker pull mysql
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest
$ docker inspect CONTAINER_ID
然后我得到ip地址(172.17.0.1),但当我ping它时,我看到超时!!!连接到正在运行的mysql服务器的合适方式是什么?

上面说:

此图公开了标准MySQL端口(3306),因此容器链接使MySQL实例可用于其他应用程序容器

首先,确保docker运行映射到该端口:
-p3306:3306
(或者无法从Linux主机访问)

那么,你需要

  • 添加,然后访问127.0.0.1:3306

      VBoxManage controlvm "boot2docker-vm" natpf1 "tcp-port3306,tcp,,3306,,3306";
    
  • 或者使用端口3306访问boot2docker VM IP地址
    $(boot2docker IP)

之后,在末尾添加端口映射是错误的:

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest -p 3306:3306
这不起作用,因为“-p3306:3306”仅被解释为要传递给ENTRYPOINT命令的参数

这是可行的(表示docker ps-a将容器显示为“正在运行”,而不是“已退出”):


然后
root@127.0.0.1:3306
root@$(docker机器ip):3306
应该是正确的。

我使用的不是boot2docker,而是新的dockerToolbox@elsoufy同样的想法:仍然有一个虚拟机。另外,如果端口未映射到docker运行,则无论如何都无法访问它。它看起来可以工作,但我对
root
的访问被拒绝,我想我必须进行garant远程访问@elsoufy您使用了哪种解决方案?我遇到了类似的问题,我可以用底部的docker命令解决这个问题。“docker run--name db-d-e MYSQL\u ROOT\u PASSWORD=yourspassword-p 3306:3306 MYSQL:latest”
 docker run -p 3306:3306 --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest