Docker容器数据卷和数据卷容器

本文介绍了Docker中数据卷和数据卷容器的使用,数据卷用于持久化和共享容器数据,不受容器生命周期影响。数据卷具有初始化、共享、直接修改等特性,并通过`docker run`命令和Dockerfile创建。数据卷容器则通过挂载至其他容器实现数据共享,其生命周期直至无容器使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Docker的使用过程中往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,所以这就涉及到Docker容器的数据操作。 
容器中数据管理主要有两种方式:数据卷和数据卷容器。

  1. 数据卷(Data Volumes) 容器内数据直接映射到本地宿主机。
  2. 数据卷容器(Data Volume Containers) 使用特定容器维护数据卷。

数据卷

数据卷是一个特殊的目录,它将主机目录直接映射进容器。可供一个或多个容器使用。

数据卷设计的目的就是为了 数据的持久化,它完全独立与容器的生命周期。因此,容器删除时,不会删除其挂载的数据卷,也不会存在类似的垃圾机制对容器存在的数据卷进行处理。

数据卷的特性

  • 数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新初始化的数据卷中
  • 数据卷可以在容器之间共享和重用
  • 可以对数据卷里的内容直接修改,修改回马上生效,无论是容器内操作还是本地操作
  • 对数据卷的更新不会影响镜像的更新
  • 数据卷会一直存在,即使挂载数据卷的容器已经被删除

命令创建数据卷

docker run -it -v hostDirectory:containerDirectory imageName /bin/bash

加权限,容器内只读

docker run -it -v hostDirectory:containerDirectory:ro imageName /bin/bash

DockerFile创建数据卷(centos为例)

  1. 在指定文件夹下创建Dockerfile文件:vim Dockerfile
  2. 编辑Dockerfile
    #    volume test
    FROM centos
    VOLUME ["/container/dataVolume1","/container/dataVolume2"]
    CMD echo "finished,-------------successful"
    CMD /bin/bash
  3. 将Dockerfile构建为docker镜像:docker -f build Dockerfile -t imageName .    (说明:. 用于路径参数传递,标识当前路径)

数据卷容器

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

创建数据卷容器

  1. 启动dc01容器:docker run -it --name dc01 imageName
  2. dc02继承自dc01:docker run -it --name dc02 --volumes-from dc01 imageName

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值