我正在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主机上工作,我很确定我已经完成了相同的步骤
我做错了什么?
答案 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 --collation-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 --collation-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