gpt4 book ai didi

docker - Docker数据卷和挂载到主机

转载 作者:行者123 更新时间:2023-12-02 19:36:32 25 4
gpt4 key购买 nike

我只是阅读了Docker文档,并试图更好地理解Docker Data Volumes,以使文档有些模糊。

据我了解,有两种安装Docker Volume的方法:

  • 简单挂载(例如docker run -it -v /data --name container1 busybox);和
  • 挂载到主机(例如docker run -it --name container1 -v /path/on/host:/datavol busybox)

  • 但是,为了使卷在容器重新启动甚至容器交换期间保持不变(删除旧容器,创建/启动新的容器),在这两种方法中都不必将卷安装到主机吗?!?换句话说,如果我没有通过“简单安装方法”显式安装到主机,则实际将卷安装到何处?以及该位置如何在容器交换中幸免?

    同样,在这两种情况下,我都假定该卷仅在给定主机本地,并且如果您在多个主机上运行Swarm或集群,则无法使用这些命令,以便在不同主机上运行的容器可以访问这些卷,是吗? (我猜这就是数据卷容器发挥作用的地方,对吗?)预先感谢!

    最佳答案

    wouldn't the volume have to be mounted to the host machine in both approaches?!?



    是的,这两种方法都基于在容器生命周期中持续存在的主机目录。

    使用以下命令可获得更多信息:
    docker volume ls
    docker volume inspect <volume-id>
    # and
    docker inspect <container-id>

    (approach 1) where is the volume actually being mounted to?



    做这个:
    docker inspect <container-id>

    您的答案在“来源”中:
    "Mounts": [
    {
    "Type": "volume",
    "Name": "96f5e6531480cc716cd030f3f60f8927a55728a52d55ad55589752c2b89f2001",
    "Source": "/var/lib/docker/volumes/96f5e6531480cc716cd030f3f60f8927a55728a52d55ad55589752c2b89f2001/_data",
    "Destination": "/data",
    "Driver": "local",
    "Mode": "",
    "RW": true,
    "Propagation": ""
    }
    ],

    请注意,如果您使用的是OSX或Windows,则该Source指的是运行docker的VM中的本地目录。

    And how does this location survive container swapouts?



    它们之所以能够生存是因为它们基于主机的本地目录(并且它们是卷,因此存在)。

    if you have a Swarm or cluster running on multiple hosts, there's no way to use these commands so that containers running on different hosts could access these volumes, yes?



    您对简单的卷配置是正确的。这就是docker变得棘手的地方,即持久性。您可以在主机文件系统级别实现共享目录,然后将其作为卷安装在容器中,以便跨群集主机获得共享卷。

    https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-shared-storage-volume-as-a-data-volume

    关于docker - Docker数据卷和挂载到主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44500406/

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