Docker学习入门(6)

1、Docker容器的数据管理

    Docker容器的数据卷、Docker的数据卷容器、Docker数据卷的备份和还原

(1)Docker容器的数据卷

        什么是数据卷(Data Volume)?

        数据卷是经过特殊设计的目录,可以绕过联合文件系统(UFS),为一个或多个容器提供访问。

        数据卷设计的目的,在于数据的永久化,它完全独立于容器的生存周期,因此,Docker不会在容器删除时删除其挂载的数据卷,也不会在类似的垃圾收集机制,对容器引用的数据卷进行处理。

                                                        

        数据卷(Data Volume)的特点

        ①数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新初始化的数据卷中。

        ②数据卷可以在容器之间共享和重用。

        ③可以对数据卷里的内容直接进行修改。

        ④数据卷的变化不会影响镜像的更新。

        ⑤卷会一直存在,即使挂载数据卷的容器已经被删除。

(2)数据卷的使用

        ①为容器添加数据卷    sudo docker run -v ~/container_data:/data -it ubuntu /bin/bash

                          

        ls -l 查看容器目录,会发现有一个 data 目录,在该目录下新建一个文件c1  touch /data/c1

        并输入一些内容 echo "I'm in container" > /data/v1 。

        exit退出容器,ls -l 查看宿主机,会发现多出一个datavolume文件夹

         

        ls -l datavolume 查看该目录,会发现刚刚在容器中新建的文件c1会出现在该目录下,vim datavolume/c1查看文件c1也会看到刚刚向文件c1输入的内容

                                                

        ②为数据卷添加访问权限 sudo docker run -v ~/datavolume:/data:ro -it ubuntu /bin/bash

            可以看到我们在挂载数据卷时,使用了只读的选项,因此不能新建文件  

                    

        docker inspect dvt1查看容器信息,可以看到挂载卷的写权限为 false

                 

                                  

        也可以使用Dockerfile构建包含数据卷的镜像 Dockerfile指令: VOLUME ["/data"]

【演示】  Dockerfile文件如下:   并利用该文件构建镜像

     

利用该镜像运行一个容器,ls查看容器,可以看出已经挂载了指定的卷目录

利用 docker inspect dvt2 查看容器信息如下

接下来利用同样的镜像yw_sir/dvt再启动一个容器dvt3,并用 docker inspect dvt3 查看容器的卷挂载信息,可以看出dvt3与dvt2所映射的地址是不一样的,这就说明使用Dockerfile 的VOLUME指令构建的镜像,在启动每个容器时都会进行一次完整的初始化,那么这种方式创建的数据卷是没办法实现数据的共享了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

讲文明的喜羊羊拒绝pua

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值