Docker存储

docker支持的graphdriver

  • aufs (ubuntu)
  • overlayfs (CoreOS)
  • devicemapper (RedHat, CentOS)

graph 镜像的保管者

  • json 镜像信息,元数据文件
  • layersize 镜像的大小信息

AUFS文件系统another union file system

挂载点:/var/lib/docker/aufs/mnt/@container_id

  • 将不同目录挂载到同一虚拟文件系统下
  • 实现layer概念
  • 没有加入Linux内核

sudo docker info

查看详细信息:storage driver, root dir

ls /var/lib/docker/aufs

diff layers mnt

diff,layers存放镜像信息
mnt存放mount信息

不同的目录挂载到同一虚拟文件系统下。将dir1和dir2挂载到aufs目录下,其中dir1只读,dir2可读写

mount -t aufs -o br=/root/dir1=ro:/root/dir2=rw none /root/aufs

ls /aufs/

umount aufs

查看镜像管理目录graph

cd /var/lib/docker/graph

cat <c_id>/json | python -mjson.tool

Devicemapper文件系统
使用devicemapper作为存储后端,必须分配两个独立的磁盘分区给docker使用,loopback模式会出现故障,避免使用

DOCKER_OPTS="--storage-driver=devicemapper --storage-opt dm.basesize=50G --storage-opt dm.datadev=/dev/sde1 --storage-opt dm.metadev=/dev/sdf1"

Volume
将容器以及容器产生的数据分离开来

Dockerfile: VOLUME $CON_PATH
docker run -v $HOST_PATH:$CON_PATH
容器之间共享:--volumes-from

-v选项:之前是宿主机目录,之后是容器目录
-v dir1:dir2 dir1是宿主机目录,dir2是容器目录
容器中保存在容器目录dir2的数据可以持久保存在dir1中

docker run -it --name data -v /root/dir1:/root busybox sh

docker run -it --name data2 --volumes-from data busybox sh

data容器中的数据已经挂载到了data2的容器里面

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 4,414评论 0 27
  • devicemapper驱动将每一个 Docker镜像 和容器存储在它自身的具有精简置备(thin-provisi...
    jianweixs阅读 4,990评论 0 0
  • 我自他乡涉水千里方至,为了再次遇见你。 远远的望见你。隔着人潮冲你挥手。 “嗨,你的女朋友真好看。” 而你却连看我...
    是西早不是山今阅读 364评论 0 0
  • 心里空荡荡的,想去这里看看再去那里看看,去完回来,心里还是空荡荡的,这时,我就知道,其实我需要的不是一次旅行,只是...
    泥旦旦阅读 253评论 0 2
  • 以下是收集的经典采矿学书籍,希望对需要的网友有帮助。 煤矿开采学(中国矿大版).pdf 煤矿科技术语 地下开采.p...
    地科小书童阅读 4,380评论 3 4