docker的数据卷

一、容器数据卷的基本概念

 

1、为什么要使用容器数据卷

  如果数据都存在于容器中,当容器被删除时数据就会丢失。所以需要将数据可持久化,同时容器之间可以有一个数据共享的操作。

  简单来说就是目录的挂载,将数据挂载在宿主机上。

 

2、基本原理

  即将容器中的某个特定目录的数据,自动同步映射到宿主机上。总结起来就是:容器的持久化和同步化操作,容器之间实现数据共享。

docker的数据卷

 

 

3、数据卷的使用

(1)直接使用命令挂载

  docker run -it -v 主机目录:容器内部目录 镜像名

  •   例子:运行一个centos容器,并将centos容器目录下的home目录,同步到宿主机上的“小虾米2”目录文件夹。

 

docker的数据卷

 

 

  • 打开新的终端窗口,查看宿主机是否创建对应目录。

 

docker的数据卷

 

 

  • 查看容器内部的配置信息

  命令:docker inspect 容器id

docker的数据卷

 

   Type:挂载类型;bind即双向绑定,内部和外部的变化互通。

  Source:映射到宿主机的目录;

  Destination:容器内部地址。

 

  • 检查容器内部目录下的信息是否同步至宿主机

  先在容器内部的home路径下新建一个文件夹

docker的数据卷

 

 

  检查宿主机“小虾米2”是否有对应文件夹。

docker的数据卷

 

 

  •  检查宿主机的改动是否会同步到容器内部

  在宿主机上新建一个xiami2文件夹

docker的数据卷

 

 

  检查容器内部的变化

docker的数据卷

 

 

  宿主机的改动已经同步至容器内

 

4、使用数据卷的优点:方便统一管理容器,无需每次都进入容器内部进行操作修改,通过数据卷挂载的方式可以在宿主机上实现对容器配置的修改、管理。

 

二、Mysql实时同步数据

 

1、运行一个mysql容器

  命令:docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7、

docker的数据卷

 

 

 

2、使用本地数据连接工具连接映射出来的mysql端口和地址,可以实现对数据库的修改。(本机的阿里云服务器没有开发外网服务,故不做演示)

 

3、删除容器之后,mysql数据库的数据依然存在。

  

1、直接使用命令来挂载:-v
  docker run -it -v 主机目录:容器内部目录 镜像名 /bin/bash
  *-*使用直接交互的方式进入容器*-*
2、查看容器内部配置信息
  docker inspect 容器id
3、新建文件夹
  touch 文件夹名字
4、运行一个mysql容器
  docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d
                   -v /home/mysql/data:/var/lib/mysql
                   -e MYSSQL_ROOT_PASSWORD=123456
                   --name mysql01
                   mysql:5.7
  -d后台运行
  -p端口映射
  -v挂载数据卷,这里挂载了两个数据局,一个是将容器内部的配置文件挂载到外部的conf目录下,一个事件数据挂载到外部的data目录下;
  -e设置环境变量,mysql在启动时需要账号密码,可以参考官网的指令。


 

 

docker的数据卷

上一篇:第三周


下一篇:tomcat安装部署