无法在本地连接到 dockerized mysql 容器

unable to connect to dockerized mysql container locally

我仍然是 docker 的初学者,尝试使用 docker 来帮助我制作开发原型。我的环境是Mac使用boot2docker,版本如下

Client version: 1.3.1
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): 4e9bbfa
OS/Arch (client): darwin/amd64
Server version: 1.3.2
Server API version: 1.15
Go version (server): go1.3.3
Git commit (server): 39fa2fa

我运行命令如下:

docker run --name mymysql -e MYSQL_ROOT_PASSWORD=mypw -e MYSQL_DATABASE=bullshit -d mysql -p 3306:3306
docker start mymysql

我可以看到如下过程运行:

CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
22d3f780c270        mysql:5             "/entrypoint.sh -p 3   2 minutes ago       Up 2 seconds        3306/tcp            mymysql   

但是我仍然无法连接到 docker 中的 mysql 实例 运行。我尝试连接到 :

检索到的 ip
$ boot2docker ip    
The VM's Host only interface IP address is: 192.168.59.103

请指点一下如何解决这个问题,我已经完成了教程,但我不确定哪里出了问题。

您使用的命令应该会出错。 docker 运行 的语法如下:

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

在指定使用的图像(在您的情况下为 mysql)之前,您必须将选项提交给 docker run,如果是这种情况,请提交命令和该命令的可能参数. 不指定命令将 运行 图像中的默认命令。

在再次 运行 重新安装容器之前,您应该停止并移除旧容器:

docker kill mymysql
docker rm mymysql

并且,按照您的示例,您应该 运行:

docker run --name mymysql -e MYSQL_ROOT_PASSWORD=mypw -e MYSQL_DATABASE=bullshit -p 3306:3306 -d mysql

当您手动设置从容器端口 3306 到 Boot2docker VM 相同端口的端口映射时,您应该可以使用 Boot2docker 的 IP 访问 MySQL ] 实例,通常为 192.168.59.103,并连接到端口 3306。