gpt4 book ai didi

docker - Dockerfile VOLUME 指令创建什么类型的卷?

转载 作者:行者123 更新时间:2023-12-02 21:06:24 28 4
gpt4 key购买 nike

Docker 使用较新的 —-mount 创建卷范围。在这里,key=value 对指定音量选项。我对参数type特别感兴趣.

  • 绑定(bind)
  • tmpfs

  • 当我使用时,Docker 创建了哪种类型(以及如何指定它?)

    Dockerfile
    VOLUME /etc/nginx

    我想看 docker volume ls/etc/nginx

    然后我可以使用另一个带有 —-from-volume 的容器访问它。我错过了什么?

    该文档仅说明在启动容器时必须指定安装点。

    The host directory is declared at container run-time: The host directory (the mountpoint) is, by its nature, host-dependent. This is to preserve image portability, since a given host directory can’t be guaranteed to be available on all hosts. For this reason, you can’t mount a host directory from within the Dockerfile. The VOLUME instruction does not support specifying a host-dir parameter. You must specify the mountpoint when you create or run the container.



    这个问题可以改写为:我如何关联 https://docs.docker.com/storage/volumes/到 Dockerfile?

    (我完全知道让 Docker 守护程序管理器成为一个卷而不是使用绑定(bind)挂载的好处。这是我的意图)

    最佳答案

    VOLUME Dockerfile 中的说明创建一个绑定(bind)安装在容器中的匿名卷。有关其他信息,请参阅。 storage doc:“除了名称之外,命名卷和匿名卷的行为方式相同”。例子:

    FROM ubuntu:18.04

    VOLUME ["/src"]
    RUN mkdir /src && \
    touch /src/file.txt

    构建镜像: docker build --rm -t so:57703848 .并运行容器: docker run --rm --name mycontainer -it --entrypoint cat -d so:57703848 (设置 cat 以保持容器在后台运行,仅用于示例目的)。

    现在您可以使用 --volumes-frommycontainer 绑定(bind)挂载卷进入另一个容器: docker run --rm -it --volumes-from mycontainer ubuntu:18.04 enter image description here

    备注 :“匿名卷在首次挂载到容器时没有明确的名称,因此 Docker 为它们提供了一个随机名称,该名称保证在给定的 Docker 主机中是唯一的。” - 一个 docker volume ls可能会出现,即: ccb199ae1396c2b9d49acc58559c739bd40b2ef37af50191fa3600ab6552fb20 (随机生成)。您可以将命名卷挂载到 run 中的匿名卷。即: docker run --rm --name mycontainer -v myvolume:/src -it --entrypoint cat -d so:57703848 , --volumes-from工作原理相同, docker volume ls将输出 myvolume .

    关于docker - Dockerfile VOLUME 指令创建什么类型的卷?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57703848/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com