Docker存储卷和Dockerfile的使用(三)

本文介绍了Docker存储卷的原理和问题,强调了卷作为数据持久化的重要性。详细阐述了两种类型的卷——docker管理的卷和绑定挂载卷。同时,讲解了Dockerfile的作用和文件格式,包括FROM、MAINTAINER、COPY等关键指令,以及文件复制的准则。
摘要由CSDN通过智能技术生成

存储卷介绍

1、Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层
2、如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本依然存在,只是已经被读写层中该文件的副本所隐藏,此即"写时复制(COW)"机制
在这里插入图片描述
关闭并重启容器,其数据不受影响,但删除Docker容器,则其更改将会全部丢失
存在的问题
1、存储于联合文件系统中,不易于宿主机访问;
2、容器间数据共享不便
3、删除容器其数据会丢失
解决方案:卷
卷是容器上的一个或多个目录,此类目录可绕过联合文件系统,与宿主机上的某目录绑定关联
在这里插入图片描述

Volume于容器初始化之时即会创建,由base image提供的卷中的数据会于此期间完成复制

Volume的初衷是独立于容器的生命周期实现数据持久化,因此删除容器之时既不会删除卷,也不会对哪怕
未引用的卷做垃圾回收操作

Docker有两种类型的卷,每种类型都在容器中存在一个挂载点,但其在宿主机上的位置有所不同;
1、绑定挂载卷
指向主机文件系统上用户指定位置的卷
2、docker管理的卷
Docker守护进程在Docker所拥有的主机文件系统上的一部分创建托管卷

创建数据卷

docker管理的卷
#docker管理的卷
[root@xiaomao ~]# docker run --name mbbox5 -it -v /mydata busybox
/ # ls
bin     dev     etc     home    mydata  
#查看创建好的数据卷
[root@xiaomao ~]# docker volume ls
DRIVER              VOLUME NAME
local               3e049f1ed75e360517ae31ce7e48d052a4586aba58525eb66c236f4b2ef60e9c
local               6de1a46764fb6c58481c1341258b7863fa068fe9aefa8076074553bd38d4bdac
local               6f9442a316b723c8c08770227192b3d39614c5e91c2594998b23a6f9a78be7a3
local               80a45333ed19da68b211f925050a06e8eb3116fc159f9e71cfd4462bc3b11ebb
#查看mbbox5容器在宿主机挂载卷的具体路径
[root@xiaomao ~]# docker container inspect mbbox5
"Mounts": [
            {
   
                "Type": "volume",
                "Name": "6de1a46764fb6c58481c1341258b7863fa068fe9aefa8076074553bd38d4bdac",
                "Source": "/var/lib/docker/volumes/6de1a46764fb6c58481c1341258b7863fa068fe9aefa8076074553bd38d4bdac/_data",
                "Destination": "/mydata",                
#开始测试宿主机与容器的存储是否相通
#宿主机
[root@xiaomao ~]# cd /var/lib/docker/volumes/6de1a46764fb6c58481c1341258b7863fa068fe9aefa8076074553bd38d4bdac/_data
[root@xiaomao _data]# echo "hello world" >> 2.txt
#进入容器查看
[root@xiaomao ~]# docker run --name mbbox5 -it  -v /mydata busybox
/ # cd mydata/
/mydata # ls
1.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值