无法从主机连接到Mysql docker容器

时间:2017-03-16 13:54:07

标签: mysql docker

我正在Windows上运行docker,我用这样的

启动了一个带有MySql的docker容器
docker run -p 3306:3306 --name test -e MYSQL_ROOT_PASSWORD=secret-pw -d mysql/mysql-server:5.5

然后在我的主机上启动Mysql工作台并尝试连接但它不起作用。

docker inspect test显示172.17.0.2上的IP地址但是当我ping这个时我得不到回复

让这个在linux主机上工作,我很确定我已经完成了相同的步骤

我做错了什么?

2 个答案:

答案 0 :(得分:5)

帮助文档:https://docs.docker.com/samples/library/mysql/

图片链接:https://store.docker.com/images/mysql

命令: docker run --name mysql_container_name --expose = 3306 -p 3306 -v / my / own / datadir:/ path / to / data / dir -e MYSQL_ROOT_PASSWORD = root_pwd -d mysql:tag --character-set-server = utf8mb4 --collat​​ion-server = utf8mb4_unicode_ci

mysql_container_name:Docker容器名称

暴露:容器暴露端口

p:主机绑定端口

/ path / to / data / dir:容器与主机之间的共享路径

root_pwd:mySql根密码

标签:存储库标签

utf8mb4:mysql服务器字符集和排序规则类型

utf8mb4_unicode_ci:mysql服务器字符集和排序规则类型

示例::docker run --expose = 3306 -p 3306 --name mysql -v / my / own / datadir:/ opt / mysql -e MYSQL_ROOT_PASSWORD = 0112358139 -d mysql:latest- -character-set-server = utf8mb4 --collat​​ion-server = utf8mb4_unicode_ci

以下远程连接步骤:

docker exec -it mydb bash->这将连接到mySql容器。

echo“ bind-address = 0.0.0.0” >> /etc/mysql/my.cnf->这将更新my.cnf文件。

service mysql restart->重新启动mySql服务。

退出-> mySql容器。

docker检查mysql | grep IPAddress-> grep容器的IP地址。

mysql -h 172.17.0.2 -u root –p->远程连接到mySql。

答案 1 :(得分:0)

您的主机3306端口应转发到容器,因此请尝试连接localhost:3306。当我尝试复制时,不允许"主机172.17.0.1连接到这个MySQL服务器"这意味着它至少已经通过了。

关于后者的更多信息:https://github.com/fideloper/docker-mysql/issues/10