【微服务架构 - Docker】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标记也可以指定挂载一个本地的已有目录到容器中去作为数据卷,下例为加载主机的/src/webapp目录到容器的/opt/webapp目录

docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py
  1. 挂载一个本地主机文件作为数据卷

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

docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash

猜你喜欢

转载自blog.csdn.net/qq_36525300/article/details/89442097