阿良老师 Docker学习_upperDir与数据持久化

一. 当使用docker pull命令去远程仓库docker hub拉取镜像时,docker会判断本地镜像仓库是否存在这个镜像,如果镜像不存在再去远程仓库下载

二.docker镜像本质上就是多个文件,UFS(Union File System)

将镜像打成tar包并解压后会发现:

当我们操作容器的时候,其实是操作容器upperDir(读写层),会将我们的操作保留至读写层。

如果在容器进行读写操作并生成镜像,则该读写层会保留为镜像读写层(最上层)。

执行:docker inspect imageID/containnerID:

 可以通过docker inspect imageID/containnerID 查看镜像联合文件系统中每个文件对应的宿主机目录,

案例: 

1. 启动nginx

 2. 执行:docker inspect 9a11665e5e43,查看容器upperDir路径

 3.cd 到upperDir目录(无法找到usr目录)

 4.进入nginx容器(进行读写操作,更改/usr/share/nginx/html目录下 index.html)

5.再次 打开浏览器

 6.再次去upperDir目录下

结论:

1.当我们操作容器的时候,其实是操作容器的upperDir(读写层)

2.当我们在容器进行读写操作后,如果不利用docker commit打包成镜像,当容器删除该读写层也随之删除,不会保留任何记录,若在容器进行读写操作并生成镜像,则该读写层会保留为镜像读写层(最上层)。

3.但是镜像是无法进行数据持久化,因为会被宿主机挂载的目录覆盖。持久化是指将容器运行产生的数据进行持久化,需要持久化的数据挂载到宿主机,当容器宕机或者被删除,再运行新的容器也能通过容器数据卷得到宿主机挂载目录的数据,从而达到数据持久化的目的。

三.容器数据持久化的两种方式

1.volumes:Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)

2.bind mounts:将宿主机上任意位置的文件或者目录挂载到容器中(常用)

区别:bind mounts能指定宿主机的挂载目录,volumes固定宿主机挂载目录为/var/lib/docker/volumes

volumes示例:

docker volume create nginx-vol    #创建容器数据卷

docker volume ls     #显示所有容器数据卷

docker volume inspect nginx-vol    #容器数据卷详情

docker run -d --name=nginx -v nginx-vol:usr/share/nginx/html nginx

bind mounts示例:

docker run -d --name=nginx -v /wuqirui/nginx:usr/share/nginx/html nginx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
阿良,Kubernetes(简称K8s)是一种用于容器编排和管理的开源平台。通过使用K8s,你可以更好地管理和部署容器应用程序。 K8s的初中级网盘是指在K8s平台上部署和管理网盘服务。网盘可以是一个用于存储和共享文件的云存储服务,用户可以通过网盘上传、下载、管理和分享文件。 在部署K8s初中级网盘时,首先需要设置一个K8s集群,该集群由多个节点组成,包括主节点和工作节点。主节点负责整个集群的管理和控制,而工作节点负责运行容器和处理用户的请求。 接下来,你可以使用K8s提供的Deployment来定义和部署网盘应用程序。Deployment是一个K8s对象,它描述了应用程序的期望状态和部署所需的资源。通过定义Deployment,你可以指定应用程序的镜像、Pod副本数、存储卷等。 在部署网盘应用程序时,你可以选择使用云存储服务或本地存储卷。云存储服务(如AWS S3)提供了持久和可扩展的存储,而本地存储卷则是将数据存储在工作节点的本地硬盘上。你可以根据需求选择适合的存储方案。 一旦网盘应用程序成功部署,用户就可以通过访问应用程序的服务地址来上传、下载和管理文件。通过K8s的负载均衡功能,可以实现对应用程序的高可用性和水平扩展。 总的来说,利用K8s部署和管理初中级网盘可以提供一个可靠、可扩展和高性能的文件存储和共享解决方案。希望这个回答对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值