docker文件挂载和共享

docker容器运行,产生一些数据/文件/等等持久化的东西,不应该放在容器内部。应当以挂载的形式存在主机文件系统中。

  1. 镜像与容器读写层,通过联合文件系统,组成系统文件视角
  2. 容器服务运行中,一定会生成数据
  3. 容器只是运行态的服务器,是瞬时的,不承载数据的持久功能

一、创建宿主机默认位置进行文件挂载

 我们通过docker inspect data查看容器元数据,可看到挂载信息

docker文件挂载和共享_第1张图片 

 二、指定主机目录方式挂载文件

格式:-v path1:path2

如下命令,容器方会自动增加一个data目录

docker文件挂载和共享_第2张图片 

三、通过共享其他容器的挂载文件volumes-from引用数据卷 

新启一容器,引入上一步的data容器目录,自动得到同一个目录,内容与data容器里挂载一样

 

备份/恢复数据卷   

备份:docker run --rm --volumes-from data -v $(pwd):/backup centos tar cvf /backup/data.tar /opt/data

恢复:docker run --rm --volumes-from data -v $(pwd):/backup centos tar xvf /backup/data.tar -C /

释义:

docker  run --rm ----- 启动一个新的容器,执行完毕删除

--volumes-from data ------- data容器中挂载卷

-v $(pwd):/backup   --------挂载当前目录到容器中为backup

cvf /backup/data.tar /opt/data --------- 备份/opt/data目录(即卷中所有的数据为data.tar

xvf /backup/data.tar -C /  ---------- 解压data.tar 到根目录/ ,因tar归档中已包含了/opt/data路径

删除数据卷:

docker rm -v data

 

你可能感兴趣的:(docker)