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

本文详细介绍了Docker中的数据卷概念,包括其作用、如何实现数据持久化及共享,以及通过命令行和DockerFile添加数据卷的方法。同时,深入探讨了数据卷容器的创建和使用,实现容器间的数据共享。

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

一、Docker容器数据卷

是什么有什么用

      Docker将应用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的以及容器之间希望有可能共享数据。
      Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了。为了能保存数据在docker中我们使用卷。

简单来说就是可以实现数据的持久化和数据的共享

 

容器内添加数据卷的方法 

1、直接命令添加

docker run -it -v /宿主机绝对路径目录:/容器内目录  image-name/image-id

docker run -it -v /usr/local/mylogs:/usr/local/tomcat/logs -p 1234:8080 d3de50634988

docker run -it -v /usr/local/mylogs:/usr/local/tomcat/logs:ro -p 1234:8080 d3de50634988 容器只读

查看是否挂载成功 docker inspect container-id

在宿主机文件夹下查看是有日志文件,当容器删除了也会存在

2、DockerFile添加

宿主机创建/user/local/DockerFile  并编写DockerFile

FROM centos
VOLUME ["/usr/local/tomcat/logs","/dataVolumeContainer2"]
CMD echo "finished,--------success1"
CMD /bin/bash

构建镜像

docker build -f /usr/local/DockerFile -t wangxiaodong/centos .

启动镜像

docker run -it wangxiaodong/centos 

查看数据卷挂在情况

docker inspect c2532631a417 

 

二、Docker数据卷容器

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

例:以上面新建的镜像wangxiaodong/centos为模板并运行容器centos01/centos02/centos03,他们都会有配置的数据卷

1、先启动一个父容器centos01

docker run -it centos01 wangxiaodong/centos

2、centos02/centos03继承自centos01

docker run -it --name centos02 --volumes-from centos01 wangxiaodong/centos

docker run -it --name centos03 --volumes-from centos01 wangxiaodong/centos

3、三个容器中对数据卷目录下进行增删改都能达到数据的共享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值