介绍

是为了数据持久化,保存数据在docker

卷 juan,四声

卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统(Union File System),可以提供一些用于持续持久化存储或共享数据的特性。

它完全独立于容器的生存周期,docker不会在容器删除时,删除其挂载的数据卷。

docker 数据卷的特点:

  • 数据卷可在容器之间共享或重用数据

  • 卷中数据的更改可以直接生效

  • 数据卷中的更改不会包含在镜像的更新中

  • 数据卷的生命周期一直持续到没有容器使用它为止

其存在的意义类似于优盘

作用

  • 数据持久化

  • 数据共享。宿主机和docker的数据是一致的

数据卷添加

  1. 命令添加

  2. DockerFile添加

1、用命令添加

-v (volume)

docker run -it -v /宿主机绝对路径路径:/容器内目录 镜像名 

docker run -it -v /myDataVolume:/dataVolumeContainer centos

会自动创建目录

docker 数据卷

 

宿主机里的

docker 数据卷

这条指令干的事,就相当于优盘插入电脑,可以数据对接

查看书否绑定成功

docker inspect

容器停止退出,是否继续共享?

宿主机修改文件,容器重新启动,容器会同步宿主机的修改

带权限命令

docker run -it -v /宿主机绝对路径路径:/容器内目录:ro 镜像名 

docker run -it -v /myDataVolume:/dataVolumeContainer:ro centos

ro : read only

容器不能修改和新建

宿主机可以修改和新建

文件是宿主机单向有权限修改

 

2、DockerFile添加

一般步骤

  1. 新建Dockerfile文件夹

  2. 在Dockerfile中使用VOLUME指令给镜像添加一个或多个数据卷

  3. File构建-(生成docker_file)

  4. 运行容器

 

不是在根路径下建立文件夹,会报错

docker 数据卷

正常的情况下是这样的

docker 数据卷

查看数据卷的位置

docker 数据卷

重新进入docker

然后在数据卷2中新建一个文件夹 new_file_from_dvc2.txt

在进入宿主机时报错,-bash: cd 权限不够

docker 数据卷

 

查了一下

提上hadoop用户权限,提升为root权限

sudo -i 

然后就可以进去了

docker 数据卷

在宿主机可以看到那个文件了,数据卷建立完成

也可以这样搞

docker run -d -p 8888:8080 --name=mycentos --privileged=true bsy/centos:0.1

--privileged=true使宿主机有权限

容器间传递共享

--volumes-from

  • docker run -it --name docker01 bsy/centos

  • docker run -it --name docker02 --volumes-from docker01 bsy/centos

相关文章:

  • 2021-06-04
  • 2022-12-23
猜你喜欢
  • 2021-07-02
  • 2021-09-02
  • 2021-11-15
  • 2022-01-11
相关资源
相似解决方案