Docker数据卷

简述

在部署项目过程中使用Docker,经常需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这就涉及到docker容器的数据管理操作。

容器中管理数据主要有两种方式:

  • 数据卷(Data Volumes):容器内数据直接映射到本地主机环境;如何在容器内创建数据卷,并且把本地的目录或文件挂载到容器内的数据卷中。
  • 数据卷容器(Data Volume Containers):使用特定容器维护数据卷。如何使用数据卷容器在容器和主机、容器和容器之间共享数据,并实现数据的备份和恢复。

数据卷

数据卷是一个可供容器使用的特殊目录,它绕过 UFS(UNIX文件系统),将主机操作系统目录直接映射进容器,类似于Linux中的mount操作。

数据卷可以提供很多有用的特性,如下所示:

  • 数据卷可以在容器之间共享和重用,容器间传递数据将变得高效方便
  • 对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作
  • 对数据卷的更新不会影响镜像
  • 数据卷默认会一直存在,即使容器被删除
  1. 启动一个挂载数据卷的容器

在用docker run命令的时候,使用-v标记可以在容器内创建一个数据卷。多次重复使用-v标记可以创建多个数据卷

docker run -d -P --name web -v my-vol:/wepapp --mount source=my-vol,target=/webapp training/webapp python app.py

-P是将容器服务暴露的端口,是自动映射到本地主机的临时端口。

  1. 挂载一个主机目录作为数据卷

使用-v标记也可以指定挂载一个本地的已有目录到容器中去作为数据卷,下例为加载主机的/usr/local/docker/tomcat/ROOT目录挂载到容器的/usr/local/tomcat/webapps/ROOT目录

docker run -p 8080:8080 --name tomcat -d -v /usr/local/docker/tomcat/ROOT:/usr/local/tomcat/webapps/ROOT tomcat
  1. 挂载一个本地主机文件作为数据卷

-v标记也可以从主机挂载单个文件到容器中作为数据卷

docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值