前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker | Docker技术基础梳理(六) - 为啥容器里数据总是缺失?

Docker | Docker技术基础梳理(六) - 为啥容器里数据总是缺失?

作者头像
咸鱼学Python
发布2019-10-09 14:40:36
8930
发布2019-10-09 14:40:36
举报
文章被收录于专栏:咸鱼学Python咸鱼学Python
为什么使用数据卷

方便宿主机直接访问容器中的文件,容器中的文件没有持久化,当容器删除后,文件数据也会随之消失,且没有使用数据卷的容器,其他容器也无法直接访问相互的文件,如果你容器里的数据总是出错,不妨和咸鱼一块了解下容器的数据卷管理。

数据卷的特点
  • 数据卷存在于宿主机的文件系统中,独立于容器,和容器的生命周期是分离的。
  • 数据卷可以目录也可以是文件,容器可以利用数据卷与宿主机进行数据共享,实现了容器间的数据共享和交换。
  • 容器启动初始化时,如果容器使用的镜像包含了数据,这些数据会拷贝到数据卷中。
  • 容器对数据卷的修改是实时进行的。
  • 数据卷的变化不会影响镜像的更新。数据卷是独立于联合文件系统,镜像是基于联合文件系统。镜像与数据卷之间不会有相互影响。
Docker数据卷的三种挂载方式

bind mounts:将宿主机上的一个文件或目录被挂载到容器上

volumes:由Docker创建和管理。使用docker volume命令管理

tmpfs mounts:tmpfs是一种基于内存的临时文件系统,tmpfs mounts数据不会存储到磁盘上

bind mounts 方式挂载数据卷

命令参数: docker run/create -v

具体用法:

  1. -v 宿主机文件或文件夹路径:容器中的文件或文件夹路径
  2. --mount type=bind,src=宿主机文件或文件夹路径,dst=容器中的文件或文件夹路径

注意:使用方法二创建时,src后的文件夹或文件必须提前创建

volumes 方式挂载数据卷

命令参数: docker run/create -v

具体用法:

  1. -v VOLUME-NAME:容器中的文件或文件夹
  2. --mount type=volume,src=VOLUME-NAME,dst=容器中的文件或文件夹路径

volume对象管理命令:

代码语言:javascript
复制
 docker volume 命令管理volume数据卷对象
 docker volume create  创建数据卷对象
 docker volume inspect  查看数据卷详细信息
 docker volume ls   查看已创建的数据卷对象
 docker volume prune  删除未被使用的数据卷对象
 docker volume rm  删除一个或多个数据卷对象
tmpfs mount 方式挂载数据卷

命令参数: docker run/create -v 具体用法:

  1. --mount type=tmfps,dst=PATH
如何共享其他容器的数据卷?

命令参数: docker run/create --volumes-from [容器]

命令格式:docker run/create --volumes-from CONTAINER

容器数据卷使用注意事项

Docker的数据卷更多会是使用volumes方式来进行使用。

使用时需注意:

  • 如果挂载一个空的数据卷到容器中的一个非空目录中,那么这个目录下的文件会被复制到数据卷中。
  • 如果挂载一个非空的数据卷到容器中的一个目录中,那么容器中的目录中会显示数据卷中的数据。如果原来容器中的目录中有数据,那么这些原始数据会被隐藏掉。

第一个规则可以帮助我们初始化数据卷中的内容。第二个规则可以保证挂载数据卷后的数据总是你期望的结果。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咸鱼学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么使用数据卷
  • 数据卷的特点
  • Docker数据卷的三种挂载方式
  • bind mounts 方式挂载数据卷
  • volumes 方式挂载数据卷
  • tmpfs mount 方式挂载数据卷
  • 如何共享其他容器的数据卷?
  • 容器数据卷使用注意事项
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档