美文网首页
Docker存储

Docker存储

作者: 知识分子中的文盲 | 来源:发表于2016-12-13 22:59 被阅读62次

    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存储

          本文链接:https://www.haomeiwen.com/subject/ykwbmttx.html