我试图更深入地了解Docker的卷,我很难弄清楚以下方面的差异/用例:
我特别不理解如果将卷条目与v标志结合在一起会发生什么。
@Radium226
VOLUME
当您将其与vols-from
运行时参数相结合时,指令变得有趣。
给定以下Dockerfile:
FROM busybox
VOLUME /myvolume
使用以下方法构建图像:
docker build -t my-busybox .
并用以下材料旋转容器:
docker run --rm -it --name my-busybox-1 my-busybox
首先要注意的是,在这个图像中有一个名为myvolume的文件夹。但这并不特别有趣,因为当我们退出容器时,体积也会被移除。
在此文件夹中创建一个空文件,因此在容器中运行以下操作:
cd myvolume
touch hello.txt
现在启动一个新容器,但与my-busybox-1
共享相同的卷:
docker run --rm -it --volumes-from my-busybox-1 --name my-busybox-2 my-busybox
您将看到my-busybox-2包含文件hello。txt在myvolume文件夹中。
退出两个容器后,卷也将被删除。
卷是存储在/var/lib/docker/卷/...
中的持久数据
>
您可以在Dockerfile中声明它,这意味着每次从映像启动容器时,都会创建卷(空),即使您没有任何-v
选项。
您可以在运行时声明它
结合这两个(卷
Docker卷创建创建一个卷,而无需定义Dockerfile并构建镜像和运行容器。它用于快速允许其他容器挂载所述卷。
如果您在一个卷中保留了一些内容,但此后删除了该容器(默认情况下不会删除其关联的卷,除非您使用的是docker rm-v),则可以将该卷重新附加到一个新的容器(声明相同的卷)。
请参阅“Docker-如何访问未附加到容器的卷?”。
使用docker卷创建,很容易将命名卷重新附加到容器。
docker volume create --name aname
docker run -v aname:/apath --name acontainer
...
# modify data in /apath
...
docker rm acontainer
# let's mount aname volume again
docker run -v aname:/apath --name acontainer
ls /apath
# you find your data back!
问题内容: 我对Bash脚本非常陌生,有人可以向我解释$#和$的情况吗?在以下代码中工作? 问题答案: 在Y分钟内来自Learn Bash :
问题内容: 我有一个Dockerfile扩展了声明一个的图像。有没有一种方法可以覆盖指令,从而“删除”指令? 问题答案: 没有。 这样做的唯一方法是,如果您克隆用作基础图像(in中的一个)的图像,然后手动删除该指令。然后构建它并用作您的基础。
问题内容: 我想加深对Docker容量的了解,并且很难弄清以下内容的差异/用例: 该命令 的 文件中的条目 我特别不明白如果将条目与标志结合在一起会发生什么。 问题答案: 卷是存储在 您可以在Dockerfile中声明它,这意味着每次从映像启动容器时,即使没有任何选择,也会创建该卷( 空 )。 您可以在运行时声明它。 结合使用两个(+ )意味着您可以将主机文件夹的内容挂载到容器中保留的卷中 doc
问题内容: 在Android 中实现类的用途是什么? 问题答案: 这是一个简单的界面,其中添加了两个字段: Android内部使用的sqlite数据库带有一列,该 列会自动递增,并且可以用作主键。这也与
本文向大家介绍JavaScript中Atomics的用途是什么?,包括了JavaScript中Atomics的用途是什么?的使用技巧和注意事项,需要的朋友参考一下 原子学 的原子公司 是在JavaScript的对象,其提供要被作为静态方法进行原子操作。就像Math 对象的方法一样,Atomics 的方法和属性也是静态的。原子 与SharedArrayBuffer 对象一起使用。 该Atromic
本文向大家介绍javascript中window.location的用途是什么?,包括了javascript中window.location的用途是什么?的使用技巧和注意事项,需要的朋友参考一下 Window.location只读属性返回一个Location对象,其中包含有关文档当前位置的信息。 Location接口表示链接到的对象的位置(URL)。属性在位置对象上可用- Location.hre