docker - [10] 容器数据卷

将应用和环境打包成一个镜像,然后发布启动就成为一个容器了。

 

一、什么是容器数据卷

  容器数据卷(Container Data Volumes)是Docker管理的一种特殊类型的存储区域,它为容器提供了一种持久化数据、共享数据以及与宿主机或其他容器之间进行数据交互的有效方式。

  如果数据都在容器中,那么容器删除,数据就会丢失!MySQL的容器删除 = 删库 => 跑路

  容器之间可以有一个数据共享的技术。

  docker容器中产生的数据,同步到本地。这就是卷技术!即容器的目录挂载到Linux上。

 

 

二、容器卷的使用

2.1、命令挂载

1.先在虚拟机创建/home/ceshi目录

2.挂载目录,并运行镜像进入容器,在容器内部的/home目录下创建测试文件

# docker run -it -v 主机目录:容器目录
docker run -it -v /home/ceshi:/home centos /bin/bash

3、另外开一个窗口,访问虚拟机的/home/ceshi目录

4、使用docker inspect查看镜像关于Mounts的信息

 

2.2、具名和匿名挂载

匿名挂载:docker run -d -P --name nginx01 -v /etc/nginx nginx

查看所有的volume的情况:docker colume ls

-v后面只有容器内路径的为匿名挂载

 

具名挂载:docekr run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx(大多数情况下使用的挂载方式)

所有的docker容器内的卷,没有指定目录的情况下都是在/var/lib/docker/volumes/xxx/_data

 

※ 容器卷挂载之后,在虚拟机中也可以观察到变化

 

※ 挂载时改变读写权限

1、只读(read only)

docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx

 

2、可读可写(read write)

docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx

 

 

 

 

 

三、安装mysql

命令挂载的实操:将MySQL的data目录挂载出去

1.拉取镜像

2、挂载并启动mysql镜像

3、进入容器,访问mysql

存疑:容器内系统时间和虚拟机系统时间不一致?

4、将容器删除,本地的数据卷依旧没有丢失,这就实现了容器数据持久化功能!

 

 

 

 

 

— 要养成终身学习的习惯 —

posted @ 2024-04-25 10:07  HOUHUILIN  阅读(8)  评论(0编辑  收藏  举报