Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.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
试图理解dockerfile及其目录中的VOLUME命令_Docker_Containers_Dockerfile - Fatal编程技术网

试图理解dockerfile及其目录中的VOLUME命令

试图理解dockerfile及其目录中的VOLUME命令,docker,containers,dockerfile,Docker,Containers,Dockerfile,我最近刚开始在本地电脑上使用windows操作系统使用docker,我正处于试图理解音量的阶段。 据我所知,在推荐行中,只需添加以下命令即可将本地目录连接到容器目录: -v [host location]:[container location] 使用dockerfile时,请指定容器目录: VOLUME [container location] 因此,当使用 docker volume ls 我可以看到在我的计算机上创建的卷 DRIVER VOLUME NAME

我最近刚开始在本地电脑上使用windows操作系统使用docker,我正处于试图理解音量的阶段。 据我所知,在推荐行中,只需添加以下命令即可将本地目录连接到容器目录:

-v [host location]:[container location]
使用dockerfile时,请指定容器目录:

VOLUME [container location]
因此,当使用

docker volume ls
我可以看到在我的计算机上创建的卷

DRIVER              VOLUME NAME
local               3d25e0608d5500c4dba29f8c3bc7b5ba4d5348e6fbd54644a20a5701f0b9f427
我的问题是我试图理解这本书在我的电脑上的什么位置

使用inspect可获得以下结果:

[
    {
        "CreatedAt": "2019-05-01T13:47:41Z",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/3d25e0608d5500c4dba29f8c3bc7b5ba4d5348e6fbd54644a20a5701f0b9f427/_data",
        "Name": "3d25e0608d5500c4dba29f8c3bc7b5ba4d5348e6fbd54644a20a5701f0b9f427",
        "Options": null,
        "Scope": "local"
    }
]
我不明白“/var/lib/docker/volumes/…”到底在哪里。
docker使用的是虚拟linux驱动器吗?

您不能直接访问docker命名的卷(或位于
/var/lib/docker
中的任何其他卷)。例如,官方Docker示例将启动附加容器,装载相同的卷以进行基本数据管理操作

如果需要直接访问卷中的数据,使用主机目录绑定装载可能是最简单的选择

您应该避免在Dockerfile中写入
指令。您不需要使用
dockerrun-v
将目录装载到容器中;它的关键作用是,如果您还没有一个
-v
选项,那么它会自动为您添加一个
-v
选项。在实践中,您将得不到任何好处,并且会遭受一些令人困惑的副作用(值得注意的是,
RUN
步骤不会在
目录中进行持久更改)


您在
docker volume ls
中看到的匿名卷可能是您的
volume
指令的结果。

对于docker for Windows和Mac,是的,/var/lib/docker是docker运行的嵌入式VM的一部分,而不是在host/var/lib/docker目录中。