暑期研习Day3 docker数据卷的使用总结

**

docker数据卷:

**
在生产环境中使用 Docker ,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作。数据管理总共有两种方式:数据卷和数据卷容器。本文主要针对在学习数据卷的使用过程中出现的错误总结。

数据卷的使用方法:
docker run -v
-v命令可以使容器的文件和宿主机的文件进行一个挂载。通过挂载,我们即可实现通过在宿主机上修改文件数据,达到修改容器内数据的目的。同时,即使容器处于关闭或删除的状态,容器中的数据也可以持久地保留在宿主机地文件夹中。

笔者参照该docker使用教程学习数据卷的使用。视频中以创建mysql容器为例,展示了数据卷的同步。
要实现改视频的内容,首先要具备以下几个实验环境:

以root账户登录的虚拟机:

  • 下载并成功安装的mysql(笔者版本为5.7.30)
  • 下载并成功安装的docker,配置好阿里云镜像加速器(方便迅速的pull镜像)
  • 在docker内pull mysql:latest 镜像
  • 成功配置好windows与虚拟机之间的数据库远程访问,该问题与防火墙有所关联,如果不解决,很有可能导致windows端的数据库访问程序无法成功连接上容器内的数据库。
    笔者参照 从windows连接到CentOS中的mysql 成功实现了从windows端的heidisql连接上虚拟机内部的mysql数据库。

在windows主机上的一个可视化mysql数据库访问程序(如Navicat,笔者采用的是heidisql)。

准备好上述环境后,我们即可开始实验。

首先,我们需要创建一个mysql的镜像,并在创建时对该mysql容器的端口与宿主机(即安装了此docker的虚拟机)上的mysql数据库端口做一个映射。同时,我们需要对宿主机和容器的文件做一个挂载。
上述操作通过以下代码实现:

docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/config.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql

其中, -p 3310:3306是指将宿主机的3310端口与容器内3306端口建立一个映射。 两个-v分别对容器内的config配置文件和data文件进行了挂载。 -e为配置数据库参数,此处是设置了该数据库的root密码。–name是给该创建的容器命名。
另外还需注意的一点:使用的镜像为mysql:latest

请注意,如果使用了mysql:5.7.31及该版本以下的镜像,将会导致无法成功打开容器内的数据库。
笔者的虚拟机内mysql版本为5.7.30,但使用5.7.31的镜像尝试了一个多小时仍然无法正确打开数据库,推测该原因与5.7.31版本的端口映射有关。

至此,如果我们成功创建了该容器,我们可以尝试在windows端连接该容器的数据库。

连接数据库
图片中的主机IP为虚拟机的IP,端口3310即我们在创建容器时为容器的3306端口所作的映射。按照笔者上述步骤,此处可以成功连接该数据库,连接进入后的视图如下:

进入后视图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值