在Docker容器中处理持久数据时,绑定挂载和卷之间有什么区别?

在Docker容器中处理持久数据时,绑定挂载和卷之间有什么区别?,第1张

在Docker容器中处理持久数据时,绑定挂载和卷之间有什么区别?

对于持久性数据,我们基本上有3种类型的卷或装载:

  1. 绑定坐骑

  2. 命名卷

  3. dockerfile中的卷

绑定挂载基本上只是从容器内的主机绑定某个目录或文件(

docker run -v /hostdir:/containerdir IMAGE_NAME

命名卷是您使用手动创建的卷

docker volume createVOLUME_NAME
。它们是在它们中创建的
/var/lib/docker/volumes
,只能由它们的名称引用。假设您创建了一个名为“
mysql_data”的卷,您可以像这样引用它
docker run -v mysql_data:/containerdir IMAGE_NAME

然后在dockerfiles中有由

VOLUME
指令创建的卷。这些卷也以以下
/var/lib/docker/volumes
名称创建,但没有特定名称。他们的“名字”仅仅是某种哈希。在运行容器时将创建该卷,并且无论您是否启动容器,该卷都可以方便地保存持久数据
-v
。开发人员可以说出重要数据在哪里以及应该保留哪些数据。

我应该使用什么?

您要使用的功能主要取决于首选项或您的管理。如果要将所有内容保留在“
docker区域”(

/var/lib/docker
)中,则可以使用卷。如果要保留自己的目录结构,则可以使用绑定。

Docker建议使用卷而不是使用binds ,因为卷是由docker创建和管理的,并且绑定具有更大的失败可能性(同样由于第8层问题)。

如果使用绑定并想在其他主机上传输容器/应用程序,则必须重建目录结构,因为每台主机上的卷都更加统一。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4912675.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存