前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker-Volume

Docker-Volume

原创
作者头像
懒人的小脑
修改2019-10-15 17:41:34
5840
修改2019-10-15 17:41:34
举报

为什么需要存储卷

  1. 关闭并重启容器,其数据不受影响;但删除 Docker 容器,则其更改会全部丢失;
  2. 数据存储于联合文件系统,IO 效率低下,并且不易于宿主机访问;
  3. 容器间数据共享不便

存储卷(volume)是容器上的一个或多个目录,此类目录可绕过联合文件系统,与宿主机上的某个目录绑定(关联)。

使用存储卷的优势:1.存储卷的数据可以脱离容器生命周期持久存储;2.全集群范围调度容器。

对于有状态的进程,存储卷是必须的。

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

Volume 类型

Docker 用两种类型的卷,每种类型都在容器中存在一个挂载点,但其在宿主机上的位置是不同的:

  • Bind mount volume

需要手动指定容器和宿主机特定的目录,宿主机的目录如果不存在,会自动创建。

  • Docker-managed volume

Docker daemon 自行维护宿主机的目录

使用存储卷

docker-managed volume

~]# docker container run -it -name bbox1 -v /data busybox

~]# docker inspect -f {{.Mounts}} bbox1 #查看 bbox1 容器的卷、卷标识符及挂载的主机目录

bind-mount Volume

~]# docker container run -it -v HOSTDIR:VOLUMEDIR --name bbox2 busybox

~]# docker inspect -f {{.Mounts}} bbox2

~]# docker inspect -f {{.NetwordSettings.IPAddress}} bbox2 模板的使用方法查看容器 IP

Sharing volumes

  • 多个容器的卷使用同一个主机目录

~]# docker container run -it --name c1 -v /docker/volumes/v1:/data/ busybox

~]# docker container run -it --name c2 -v /docker/vloumes/v2:/data busybox

  • 复制使用其他容器的卷,为 docker run 命令使用 --volume-from 选项

~]# docker container run -it --name bbox1 -v /docker/volumes/v1:/data busybox #此容器作为基础架构支撑容器完全可以不运行,只需要本地存在此容器即可。

~]# docker container run --it --name bbox2 --volumes-from bbox1 busybox

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

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