我仍然是docker的初学者,试图使用docker来帮助我进行开发原型设计。我的环境是使用boot2docker的Mac,版本如下
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
请给我一个如何解决这个问题的指针,我完成了教程,但我不确定出了什么问题。
答案 0 :(得分:2)
您使用的命令应该出错。 docker run的语法如下:
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(通常为192.168.59.103)连接到MySQL,并连接到端口3306。