zoukankan      html  css  js  c++  java
  • docker数据卷

    为何使用数据卷?

    1. 容器与主机之间、容器与容器之间共享文件
    2. 容器中数据的持久化
    3. 将容器中的数据备份、迁移、恢复等

    数据卷的特点

    1. 数据卷存在于宿主机的文件系统中,独立于容器,和容器的生命周期是分离的。
    2. 数据卷可以目录也可以是文件,容器可以利用数据卷与宿主机进行数据共享,实现了容器间的数据共享和交换。
    3. 容器启动初始化时,如果容器使用的镜像包含了数据,这些数据会拷贝到数据卷中。
    4. 容器对数据卷的修改是实时进行的。
    5. 数据卷的变化不会影响镜像的更新。数据卷是独立于联合文件系统,镜像是基于联合文件系统。镜像与数据卷之间不会有相互影响。

    数据卷挂载的三种方式:

    bind mounts:将宿主机上的一个文件或目录被挂载到容器上。

    利用docker run/create的参数为容器挂载数据卷
      用法:
      方式一: -v, --volume参数
        -v 宿主机文件或文件夹路径:容器中的文件或者文件夹路径
      方式二:--mount参数
        --mount type=bind, src=宿主机文件或文件夹路径, dst=容器中的文件或者文件夹路径
      注意:src指定的文件和路径必须提前创建或存在

    volumes:由Docker创建和管理。使用docker volume命令管理。

    利用docker run/create为容器挂载数据卷
      用法:
      方式一: -v, --volume参数
        -v VOLUME-NAME:容器中的文件或者文件夹路径
      方式二:--mount 参数
        --mount type=volume, src=VOLUME-NAME, dst=容器中的文件或者文件夹路径

    tmpfs mounts:tmpfs 是一种基于内存的临时文件系统。tmpfs mounts 数据不会存储在磁盘上。

    利用docker run/create为容器挂载数据卷
      用法:
        --mount type=tmpfs, dst=PATH

    共享其他容器的数据卷-数据卷容器

    利用docker run/create 的--volumes-from参数指定数据卷容器
      用法:
        docker run/create --volumes-from CONTAINER

    1,2两种方式,1相当于把挂载到自己定义的目录,2则是由挂载到由docker创建的目录,2最常用

    volume对象管理:

    1. docker volume create 创建数据卷对象
    2. docker volume inspect 查看数据卷详细信息
    3. docker volume ls 查看已创建的数据卷对象
    4. docker volume prune 删除未被使用的数据卷对象
    5. docker volume rm 删除一个或多个数据卷对象

    注意点:

    Docker的数据卷更多会是使用volumes方式来进行使用。使用时需注意:

    • 如果挂载一个空的数据卷到容器中的一个非空目录中,那么这个目录下的文件会被复制到数据卷中。
    • 如果挂载一个非空的数据卷到容器中的一个目录中,那么容器中的目录中会显示数据卷中的数据。如果原来容器中的目录中有数据,那么这些原始数据会被隐藏掉(以数据卷内容为主)
  • 相关阅读:
    Spring学习笔记
    Bash编程(6) String操作
    Bash编程(5) Shell方法
    Bash编程(4) 参数与变量
    Bash编程(2) 循环与分支
    CentOS 升级 openSSH
    Bash编程(1) 基础
    DNS配置
    资料收集:学习 Linux/*BSD/Unix 的 30 个最佳在线文档
    【数位DP】[LOJ10168] 恨7不成妻
  • 原文地址:https://www.cnblogs.com/ycg-blog/p/12121112.html
Copyright © 2011-2022 走看看