Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将本地目录装入未公开为卷的Docker容器路径_Docker_Dockerfile - Fatal编程技术网

将本地目录装入未公开为卷的Docker容器路径

将本地目录装入未公开为卷的Docker容器路径,docker,dockerfile,Docker,Dockerfile,以下两者之间有什么区别吗 将主机目录装入容器路径(该路径不作为卷公开),例如: docker run-v/host/directory:/container/directory my_image命令\u to_run myu图像的Dockerfile不包含VOLUME[“/container/directory”] 将主机目录装入作为卷公开的容器路径: docker run-v/host/directory:/container/directory my_image命令\u to_run myu

以下两者之间有什么区别吗

  • 将主机目录装入容器路径(该路径不作为卷公开),例如:
  • docker run-v/host/directory:/container/directory my_image命令\u to_run

    myu图像的
    Dockerfile
    不包含
    VOLUME[“/container/directory”]

  • 将主机目录装入作为卷公开的容器路径:
  • docker run-v/host/directory:/container/directory my_image命令\u to_run

    myu图像的
    Dockerfile
    包括
    卷[“/container/directory”]


    我知道卷数据的持久性与容器生命周期无关。但是,由于我希望从容器中处理本地数据,因此如果容器中的装载点是卷,这会有任何区别吗?

    如果将主机的路径装载到容器中,则没有区别。来自主机的文件系统将安装在容器中该目录的顶部

    在映像中列出卷与不列出卷之间的区别在于docker在创建映像而不指定卷时的行为。当在映像上定义卷时,docker将创建一个“匿名”卷,您可以使用
    docker volume ls
    将其视为一个长uuid字符串。这些卷很少有用,因此我建议不要在映像中定义卷,而只在
    docker run
    命令或
    docker compose.yml
    定义中定义它们

    在映像中定义卷的缺点包括:

  • Dockerfile或子Dockerfile中的后续行可能无法更改此位置的内容。DOCKER的行为随着场景和版本的不同而不同,因此对于可预测性,一旦图像中定义了卷,我就认为目录不受限制。

  • 创建匿名卷很难使用,并且可能会使文件系统变得混乱


  • 如果您对更多细节感兴趣,我不久前就发布了一篇关于此主题的文章。

    您好,这是一个很好的答案,谢谢。我想谈一点。另外,在映像级别定义卷对于该映像生成的数据持久性至关重要。例如,官方MySQL映像将指定
    VOLUME/var/lib/MySQL
    ,以便持久化数据。在这种情况下,在
    docker run
    或使用
    compose
    定义卷是不可行的。当数据容器很常见时,使用docker映像的
    volume
    语法。这是一种避免在
    run
    compose
    中定义卷的简写方法,数据容器由容器名和卷名引用。它已被命名卷替换,您必须创建一个运行时。不需要在构建时定义这些目录,任何目录都可以在运行时成为卷。