无需链接的Docker卷。用例是什么?

沃迪利亚德

到目前为止,我真的只将VOLUME理解为一种

  • 在数据容器内指定一个持久的目录
  • 指定将链接到您的主机容器的位置

我无法理解的是为什么我看到这么多使用VOLUME /path/to/app甚至更糟的Dockerfile VOLUME /var/lib/mysql我了解您可能想要创建一个具有此卷的容器,然后使用--volumes-from该容器链接到该容器以实现持久性。但是,为什么要在实际使用该数据的容器内制定该规范。它有什么帮助?据我所知,这VOLUME /var/data与只是说没什么不同RUN mkdir /var/data当卷不在数据容器内,不与主机共享或被其他容器使用时,卷有何益处?

托马斯列夫(Thomasleveil)

Docker映像和Docker容器具有分层的文件系统,速度很慢。通过将目录定义为数据卷,您可以指示docker使这些目录位于慢速分层文件系统之外这是多重后果,其中:

  • 快速文件系统
  • 在多个容器之间共享卷的能力
  • 持久性(只要存在至少一个使用该卷的容器)

这就是为什么卷不仅是商品,而且对于期望具有良好I / O性能的目录必不可少的原因。


据我所知,VOLUME / var / data与只说RUN mkdir / var / data没有什么不同。

区别在于,使用卷时,目录/var/data是不同(且速度更快)文件系统上的安装点。/var/data通过mount在容器中运行命令,您可以见证不仅仅是一个目录

$ docker run --rm -v /var/data busybox mount
rootfs on / type rootfs (rw)
none on / type aufs (rw,relatime,si=6c354c296f850c3c)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev type tmpfs (rw,nosuid,mode=755)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=65536k)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666)
sysfs on /sys type sysfs (ro,nosuid,nodev,noexec,relatime)
/dev/mapper/vg0-root on /etc/resolv.conf type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/mapper/vg0-root on /etc/hostname type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/mapper/vg0-root on /etc/hosts type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/mapper/vg0-root on /var/data type ext4 (rw,relatime,errors=remount-ro,data=ordered)
proc on /proc/sys type proc (ro,nosuid,nodev,noexec,relatime)
proc on /proc/sysrq-trigger type proc (ro,nosuid,nodev,noexec,relatime)
proc on /proc/irq type proc (ro,nosuid,nodev,noexec,relatime)
proc on /proc/bus type proc (ro,nosuid,nodev,noexec,relatime)
tmpfs on /proc/kcore type tmpfs (rw,nosuid,mode=755)

/aufs分层(缓慢)文件系统上

/var/dataext4(和快速)文件系统上

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

IntStream的用例是什么?

来自分类Dev

在Linux中典型的实际用例或符号/硬链接的应用是什么?

来自分类Dev

此功能的实际用例是什么?

来自分类Dev

Android Future的用例是什么?

来自分类Dev

原子读取的用例是什么

来自分类Dev

“数组地址”的实际用例是什么?

来自分类Dev

冷观测的用例是什么?

来自分类Dev

git名称空间的用例是什么?

来自分类Dev

git branch -d的用例是什么

来自分类Dev

@Import批注的用例是什么?

来自分类Dev

匿名联合类型的用例是什么

来自分类Dev

glTexParameterIiv和glTexParameterIuiv的用例是什么?

来自分类Dev

ons.ready()的用例是什么?

来自分类Dev

(->)r的MonadReader实例的用例是什么

来自分类Dev

Streams和Firehose的用例是什么?

来自分类Dev

模块的正确用例是什么?

来自分类Dev

此功能的实际用例是什么?

来自分类Dev

不可变对象的用例是什么

来自分类Dev

ons.ready()的用例是什么?

来自分类Dev

Firebase 队列的用例是什么?

来自分类Dev

声明合并的用例是什么?

来自分类Dev

为什么在反应中使用裁判?用例是什么?

来自分类常见问题

Java AtomicReference#getAndSet的用例是什么?

来自分类Dev

bash中“ $ *”的一些用例是什么?

来自分类Dev

Android中Property类的用例是什么

来自分类Dev

Scala中“忽略变量”语法的用例是什么?

来自分类Dev

Swift中被忽略的参数的用例是什么

来自分类Dev

Azure云服务辅助角色的用例是什么?

来自分类Dev

std :: atomic <T>上的volatile操作的用例是什么?