Datawhale-Docker学习笔记-0003-数据管理

本文介绍了Docker中的数据卷管理,包括数据卷的概念、创建、查看、挂载到容器以及删除操作。数据卷是用于持久化数据的存储方式,与容器生命周期独立。通过`docker volume`命令可以管理数据卷,使用`--mount`挂载数据卷到容器。删除数据卷时需注意不能删除已挂载的卷。
摘要由CSDN通过智能技术生成

1. 什么是数据

数据,按照不同的划分方式会有不同的定义。比如,按照是否为连续信息划分,可以划分为模拟数据和离散数据。但是在Docker的内容中,我们更加关注的是数据是否为持久数据。顾名思义,持久化数据就是需要保存的数据,非持久化数据就是不需要保存的那些数据。

并不是说非持久化的数据就不重要,它同样需要我们的重视。在Docker中两者都有相应的支持方式。

首先,每个Docker容器都有自己的非持久化存储。非持久化的存储是自动创建的,依赖于容器,与容器的生命周期相同。当我们删除容器的时候,也将同时删除所有的非持久化数据。如果我们想要将这些数据存储下来,则需要将数据保存在数据卷上。

2. 数据卷

很多时候,我们会认为容器比较适合微服务设计模式。但是,并不能很简单就认为容器只适用于临时场景。

每个容器都被自动分配了本地存储,默认情况下,这是容器全部文件和文件系统保存的地方。我们可以这么理解,非持久化的存储属于容器的一部分,并且与容器的生命周期一致。当我们删除容器的时候,也同时会删除非持久化的存储。

但是如果容器需要产生持久化数据的时候,就需要涉及到数据卷。

卷的工作流程大概如下:

  1. 用户先创建数据卷
  2. 用户再创建容器
  3. 将数据卷挂载到容器上

这样,我们会将数据卷挂载到容器文件系统的某个目录之下,任何写在该目录下的内容都会写到数据卷中。如果你使用过Google的Colab的化,Colab挂载Drive的工作模式就于此类似。

我们可以将数据卷理解为移动硬盘,容器理解为主机。这样我们将硬盘插在主机上,数据保存在硬盘中。然后我们将主机关机,即使我们将主机砸了,数据也不会消失。

3. 数据卷的操作

3.1 创建数据卷

数据卷在Docker中和docker image,docker container一样,都有独立的子命令。数据卷的子命令以docker volume开始 。

docker volume create myVolume

我们可以通过上述指令创建名为myVolume的数据卷。

同时,我们可以通过"-d"选项来指定不同的驱动。如果不指定的化,则默认使用的是内置的local驱动。如果想使用第三方的驱动,我们可以通过下载插件实现。这些插件涵盖了块存储、文件存储、对象存储等等。

3.2 查看已经创建的数据卷

我们可以使用如下指令来查看已经创建的数据卷:

docker volume ls

我们甚至来可以使用如下指令来查看详情:

docker volume inspect myVolume

3.3 启动一个挂载数据卷的容器

在前面的学习中,我们知道可以使用docker container run指令来启动一个容器。在这同时,我们可以使用"–mount"来同时挂载数据卷。

docker container run -i -t\
	--name test\
	--mount source=myVolume,target=/vol\
	ubuntu:latest /bin/bash

其中"–name"是容器的名字。

需要注意的是,在"–mount"选项中,我们不仅仅可以指定source为我们创建的数据卷。还可以是主机的文件夹。使用此功能时,要加上type=bind,路径必须要存在,且必须是绝对路径。

当然,如果你想的化,也可以直接挂载一个主机文件进入容器中。

3.4 删除数据卷

如果我们想要删除一个数据卷,我们需要注意的是不可以删除已经挂载的数据卷。

docker volume rm myVolume  # 可以删除指定的数据卷
docker volume prune  # 可以删除所有数据卷
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值