如何从另一台主机访问在docker容器中的mysql?

我已经创build了一个docker实例,其中也包括在这个图像中的MySQL,现在我想检查我的MySQL是否可以远程访问?

如何检查连接是否build立?

请参阅第95个问题 :确保将您的mysql映像使用的端口映射到主机端口(如果是Linux)

docker run -p 3306:3306 --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest 

http://severalnines.com/sites/default/files/blog/node_4734/image04.png

如果您使用Docker与VirtualBox(Windows或Mac),则需要将该端口端口转发给您的实际主机

 VBoxManage controlvm "default" natpf1 "tcp-port3306,tcp,,3306,,3306"; 

并使用docker-machine ip default来获取实际的地址。

如果您使用Docker for Windows(HyperV)或Mac(HyperKit),则不需要这样做 。

有关更多信息,请参阅“ MySQL Docker容器:了解基础知识 ”。


2017年3月更新,来自同一问题95

aercolino报告在这评论 :

我只是发现我可以将SequelPro连接到Docker上的MySQL服务器,这些数据是:(不需要服务器的IP)

 Host: 0.0.0.0 Port: 32768 Username: wordpress Password: wordpress 

我在这里发布我的configuration: 如何在OS Sierra上使用Docker安装WordPress

这可以工作,但是0.0.0.0是零networking的广播地址或者0.0.0.0 ,在互联网协议标准中代表这个networking,即本地networking。 。 并不总是安全的使用。