zoukankan      html  css  js  c++  java
  • Docker 数据管理(Volumes)

    Docker 容器产生的数据在可写层,如果不通过 docker commit 生成新的镜像,使得数据成为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了。

    Docker 提供了三种数据 Mount 方式:

    这里主要记录 Volumes 方式,也就是图中的 Docker area,也是 Docker 推荐的方式。

    卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此 Docker 不会在容器删除时删除其挂载的数据卷。

    特点:

    • 数据卷可在容器之间共享或重用数据
    • 卷中的更改可以直接生效
    • 数据卷中的更改不会包含在镜像的更新中
    • 数据卷的生命周期一直持续到没有容器使用它为止

    一、数据卷

    # 类似于挂载目录
    docker run -it -v /宿主机目录:/容器内目录 centos /bin/bash
    
    # 也可以使用 docker volume create,默认挂载在宿主机的 /var/lib/docker/volumes/ 目录下
    docker volume create 卷名称
    docker run -it --volume 卷名称:/容器内目录 centos /bin/bash

    可以看到这里把宿主机 /tmp 目录挂载到容器内 /home 目录了

    也可以使用命令查看数据卷是否挂载成功。

    docker inspect 容器ID

    关于宿主机和容器之间数据同步

    无论容器是运行还是停止,对宿主机的挂载目录所做的修改,在容器启动后都会映射到容器内对应目录。

    同样的,在容器内,对挂载目录的操作都会映射到宿主机对应目录。

    挂载目录权限

    https://docs.docker.com/engine/reference/run/#volume-shared-filesystems

    docker run -it -v /宿主机目录:/容器内目录:ro centos /bin/bash

    二、数据卷容器

    命名的容器挂载数据卷,其它容器通过挂载这个容器(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器。

    容器间传递共享:--volumes-from

    docker run --name="cent0" -it -v /tmp:/home1 centos /bin/bash
    docker run --name="cent1" -it -v /tmp:/home2 --volumes-from cent0 centos /bin/bash
    docker run --name="cent2" -it -v /tmp:/home3 --volumes-from cent0 centos /bin/bash

    创建三个容器

    • 第一个容器挂载 /tmp:/home,后面子容器挂载的目录不会影响父容器
    • 第二个容器基于第一个容器,且又挂载了 /tmp:/home2,所以可以看到两个目录:/home1、/home2
    • 第三个容器基于第一个容器,且又挂载了 /tmp:/home3,所以可以看到两个目录:/home1、/home3,与第二个容器无关

    删除掉父容器再看子容器目录挂载情况

    可以到删除父容器后不影响子容器的挂载目录。

    结论:容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止。


    https://docs.docker.com/storage/volumes/

    https://docs.docker.com/engine/reference/commandline/run/

    https://docs.docker.com/engine/reference/commandline/volume_create/

  • 相关阅读:
    VirtualBox Linux服务vboxservicetemplate
    oracle 11g常用命令
    haproxy dataplaneapi
    使用jproflier 分析dremio
    cube.js 支持oceanbase 的mysql driver
    fastdfs 集群异常修复实践
    使用jHiccup 分析java 应用性能
    dremio mysql arp 扩展
    cube.js graphql 支持
    apache kyuubi 参考架构集成
  • 原文地址:https://www.cnblogs.com/jhxxb/p/11426293.html
Copyright © 2011-2022 走看看