Docker大学生看了都会系列(六、Dokcer容器数据卷)

系列文章目录
第一章 Docker介绍
第二章 2.1 Mac通过Homebrew安装Docker
第二章 2.2 CentOS安装Docker
第三章 Docker常用命令
第四章 常用命令实战
第五章 Docker镜像详解
第六章 Docker容器数据卷
第七章 Dockerfile详解
第八章 Dokcerfile部署go项目
第九章 Docker使用Buildx构建不同CPU架构镜像
第十章 Docker网络
第十一章 Docker-Compose用法


一、前言

通过本文了解什么是容器数据卷,实战:使用具名挂载的命令对MySQL数据持久化。

二、环境

名称备注
远程操作系统CentOS 7.9 64位
远程管理工具FinalShell 版本4.3.11
操作命令对象Docker 版本26.1.3
测试对象MySQL 版本8.0.27

三、容器数据卷基本介绍

3.1 什么是容器数据卷

一种持久化存储解决方案,它使得容器内的数据可以持久化保存,并且在容器之间共享和重用数据,这就是Docker容器数据卷。

3.2 容器数据卷的本质

卷理解就是目录或者文件。本质其实就是将容器内的目录/文件挂载在宿主机的目录/文件容器目录/文件内产生数据变化同步给宿主机宿主机目录/文件数据变化也会同步给容器目录/文件,这其实也就是双向绑定。多个容器可以挂载宿主机的同一个目录/文件下,实现容器间的数据共享

3.3 容器数据卷的作用

容器的持久化和同步操作, 实现容器与宿主机之间,容器与容器之间可以数据共享。

四、容器数据卷的使用(实战:MySQL数据持久化)

4.1 查找镜像

docker search mysql

4.2 拉取镜像

docker pull mysql

4.3 挂载容器目录到宿主机(重点)

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


具名挂载语法:-v 宿主机目录/文件:容器目录/文件
匿名挂载语法:-v 容器目录/文件
这里我们以具名挂载的形式进行演示。
匿名挂载,没有指定目录的情况下都是在/var/lib/docker/volumes/xxxx/_data下,这里不演示。
MYSQL_ROOT_PASSWORD这个填写MySQL的密码,不用过多解释。

选项参数备注
-d后台运行
-p端口映射
-v卷挂载
-e环境配置
–name容器名字

4.4 通过交互运行的形式进入容器内部

docker exec -it mysql01 /bin/bash

4.5 启用MySQL命令行

这里以密码登陆的方式进入

mysql -uroot -p123456

4.6 添加测试

创建一个名为“dd”的数据库,并创建一张名为“users”的表

create database dd;
create table users(id int not null,name varchar(20));

4.7 查看结果

4.7.1 通过inspect命令查看挂载路径

此时通过docker inspect 容器名称可以看到,容器内的路径和挂载宿主机的路径。

docker inspect mysql01

4.7.3 通过FinalShell查看数据是否变更

此时通过FinalShell可以看到,容器内的数据已经同步给了宿主机,实现了数据持久化。

完成ヾ(◍°∇°◍)ノ゙

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值