当前位置: 首页 > 知识库问答 >
问题:

Dockerfile中卷的用途是什么

何峰
2023-03-14

我试图更深入地了解Docker的卷,我很难弄清楚以下方面的差异/用例:

  • docker volume create(docker卷创建)命令
  • docker run-v/path:/host\u路径
  • Dockerfile文件中的卷条目

我特别不理解如果将卷条目与v标志结合在一起会发生什么。

共有3个答案

闽阳州
2023-03-14

@Radium226

  1. 在Dockerfile中指定VOLUME可确保文件夹在运行时被视为卷(即外部容器),而不是容器内的常规目录。请注意性能和可访问性影响。
  2. 如果忘记在“docker run”命令行中指定“-v”,上述情况仍然正确。只是卷名变得匿名。但仍有方法从此类匿名卷中访问或恢复数据。
洪成济
2023-03-14
匿名用户

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文件夹中。

退出两个容器后,卷也将被删除。

储嘉悦
2023-03-14

卷是存储在/var/lib/docker/卷/...中的持久数据

>

  • 您可以在Dockerfile中声明它,这意味着每次从映像启动容器时,都会创建卷(空),即使您没有任何-v选项。

    您可以在运行时声明它
    结合这两个( )意味着您可以将主机文件夹的内容装载到容器保存的卷中,该容器位于var/lib/docker/volumes/…

    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