gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 07:43:49 24 4
gpt4 key购买 nike

我仍然是 docker 的初学者,尝试使用 docker 来帮助我的开发原型(prototype)设计。我的环境是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 run 的语法如下:

用法: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)并连接到端口 3306 来访问 MySQL。

关于mysql - 无法在本地连接到 dockerized mysql 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28393502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com