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

系列文章目录
第一章 Docker介绍
第二章 2.1 Mac通过Homebrew安装Docker
第二章 2.2 CentOS安装Docker
第三章 Docker常用命令
第四章 常用命令实战
第五章 Docker镜像详解
第六章 Docker容器数据卷


一、前言

通过本文了解什么是容器数据卷,实战:使用具名挂载的命令对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可以看到,容器内的数据已经同步给了宿主机,实现了数据持久化。

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

相关推荐

  1. Docker大学生系列(七、Dokcerfile详解)

    2024-06-07 09:42:02       34 阅读
  2. Docker容器数据

    2024-06-07 09:42:02       42 阅读
  3. Docker 容器数据

    2024-06-07 09:42:02       63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 09:42:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 09:42:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 09:42:02       82 阅读
  4. Python语言-面向对象

    2024-06-07 09:42:02       91 阅读

热门阅读

  1. 获取gitee上某个组织所有仓库的介绍

    2024-06-07 09:42:02       28 阅读
  2. 系统研发安全漏洞

    2024-06-07 09:42:02       26 阅读
  3. vue el-dialog封装成子组件(组件化)

    2024-06-07 09:42:02       26 阅读
  4. react-intl国际化在项目中的使用

    2024-06-07 09:42:02       29 阅读
  5. 浅谈人机交互

    2024-06-07 09:42:02       25 阅读
  6. 人机交互中的阴差阳错

    2024-06-07 09:42:02       25 阅读
  7. 解决nginx无法获取带下划线的header值

    2024-06-07 09:42:02       31 阅读
  8. 单双目视频转图片

    2024-06-07 09:42:02       24 阅读
  9. 常见排序算法,快排,希尔,归并,堆排

    2024-06-07 09:42:02       23 阅读