系列文章目录
第一章 Docker介绍
第二章 2.1 Mac通过Homebrew安装Docker
第二章 2.2 CentOS安装Docker
第三章 Docker常用命令
第四章 常用命令实战
第五章 Docker镜像详解
第六章 Docker容器数据卷
文章目录
- 一、前言
- 二、环境
- 三、容器数据卷基本介绍
- 3.1 什么是容器数据卷
- 3.2 容器数据卷的本质
- 3.3 容器数据卷的作用
- 四、容器数据卷的使用(实战:MySQL数据持久化)
- 4.1 查找镜像
- 4.2 拉取镜像
- 4.3 挂载容器目录到宿主机(`重点`)
- 4.4 通过交互运行的形式进入容器内部
- 4.5 启用MySQL命令行
- 4.6 添加测试
- 4.7 查看结果
- 4.7.1 通过inspect命令查看挂载路径
- 4.7.3 通过FinalShell查看数据是否变更
一、前言
通过本文了解什么是容器数据卷,实战:使用具名挂载的命令对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可以看到,容器内的数据已经同步给了宿主机,实现了数据持久化。
完成ヾ(◍°∇°◍)ノ゙