Docker容器内的Mysql连接

最近一直在本地虚拟机上学习Docker,使用Mysql5.5镜像生成容器后,在物理机上使用navicat-premium却无法连接,接下来说下整体过程与解决方法。

1、找到需要下载的mysql镜像

docker search mysql

在这里插入图片描述

2、下载镜像

docker pull docker.io/mysql

在这里插入图片描述

3、查看下载的镜像

docker images

在这里插入图片描述

4、查看mysql暴露端口号

一般都是3306,有兴趣的可以通过命令查看,c856是镜像前4位

docker image inspect c856

在这里插入图片描述
在这里插入图片描述

5、运行容器

run-运行;d-守护进程;-p-端口隐射(外部访问端口为3308,内部的刚才找过了是3306);-e-设置mysql的密码;–name-给容器命名;c856-镜像ID前4位。

docker run -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=root --name=mysql2 c856

在这里插入图片描述

6、查看运行的容器,并使用navicat连接

网上查了下,是因为最新版mysql(mysql8以上)加密方式变化造成的。具体见:https://www.cnblogs.com/zhurong/p/9898675.html。
我们这边为了操作方便就使用旧版的mysql5.5继续操作。
在这里插入图片描述

使用旧版mysql5.5生成容器后,再使用navicat连接
在这里插入图片描述

7、容器内放两个mysql

再次使用mysql5.5建立一个容器,通过nestat -tlnpu 看到,3307,3308两个端口都已经开启监听(3306是虚拟机本地的数据库端口)
在这里插入图片描述
在这里插入图片描述

8、连接两个容器内的mysql

可以看到可以同时连接两个容器内的数据库,暴露端口都是3306,映射端口不同,也是能够正常连接的。
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值