Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/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卷ls列表为空_Docker_Docker Volume - Fatal编程技术网

docker卷ls列表为空

docker卷ls列表为空,docker,docker-volume,Docker,Docker Volume,我使用的是docker 18.09.2版,版本为6247962 我运行一个容器并将一个主机目录装载到该容器 docker run -it -p 4444:8000 -v c:/py:/azima 27b4b21eeb64 /bin/sh 这创建了一个容器,并且主机目录c:/py已装载到/azima 我可以检查,创建,读取文件,它是工作 但是当我运行此命令时,从另一个powershell运行docker volume ls 这显示为空 检查容器会提供此信息(如果有帮助): 为什么未列出卷?这是因

我使用的是docker 18.09.2版,版本为6247962

我运行一个容器并将一个主机目录装载到该容器

docker run -it -p 4444:8000 -v c:/py:/azima 27b4b21eeb64 /bin/sh
这创建了一个容器,并且主机目录
c:/py
已装载到
/azima

我可以检查,创建,读取文件,它是工作

但是当我运行此命令时,从另一个powershell运行docker volume ls

这显示为空

检查
容器
会提供此信息(如果有帮助):


为什么未列出卷?

这是因为
-v c:/py:/azima
选项将使用将
c:/py
装载到容器内的
/azima
目录

绑定挂载基本上只是从容器内的主机绑定某个目录或文件,您已经这样做了

这就是为什么在检查容器时会看到
“Type”:“bind”

而将创建您使用
docker volume create volume\u NAME
手动创建的卷。它们是在
/var/lib/docker/volumes
中创建的,只能通过名称引用

这些命名卷仅在命令中列出

当您检查连接到该卷的容器时,您将看到
“Type”:“volume”

更多信息


希望这有帮助。

Docker卷和Docker挂载是两件不同的事情

在绑定装载中,我们指定
主机路径
,它不显示在
docker volumes ls
和卷中,我们指定docker
卷名
,我们可以使用
docker volumes ls
查看docker卷

卷:卷是存储Docker容器创建或使用的持久数据的首选方式。主机文件系统还存储卷,类似于绑定装载。但是,默认情况下,Docker完全管理它们并将它们存储在~/Docker/volumes下

 docker volume create alpine_test
现在运行容器

docker run --rm  -v alpine_test:/root alpine ash -c "touch /root/test.txt"
 
这将使用volume
alpine\u test
创建一个文件,容器将终止

现在,如果我们运行另一个容器和列表文件

docker run  -v alpine_test:/root alpine ash -c "ls /root/"
尽管如此,我们仍然可以看到上次创建的文件

如果容器终止,数据仍保留在卷中,可供以后使用

如果检查卷连接的容器,它将显示docker卷路径

docker检查集装箱\u id

 "Mounts": [
                {
                    "Type": "volume",
                    "Name": "alpine_test",
                    "Source": "/var/snap/docker/common/var-lib-docker/volumes/alpine_test/_data",
                    "Destination": "/root",
                    "Driver": "local",
                    "Mode": "z",
                    "RW": true,
                    "Propagation": ""
                }
            ],
 "Mounts": [
            {
                "Type": "bind",
                "Source": "/home/test/",
                "Destination": "/root",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

绑定装载:绑定装载是存储在容器主机文件系统中任何位置的文件或文件夹,装载到运行的容器中。绑定装载与卷的主要区别在于,由于它可以存在于主机文件系统的任何位置,Docker之外的进程也可以修改它

docker run -v /home/test/:/test -it --rm alpine
对于装载,如果检查容器,您将看到主机装载路径位置

docker检查集装箱\u id

 "Mounts": [
                {
                    "Type": "volume",
                    "Name": "alpine_test",
                    "Source": "/var/snap/docker/common/var-lib-docker/volumes/alpine_test/_data",
                    "Destination": "/root",
                    "Driver": "local",
                    "Mode": "z",
                    "RW": true,
                    "Propagation": ""
                }
            ],
 "Mounts": [
            {
                "Type": "bind",
                "Source": "/home/test/",
                "Destination": "/root",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

你的共享c驱动器吗?您使用的是哪个docker版本?对于新版本,您需要安装
c:/py:/azima
way@Adiii
docker版本18.09.2,内部版本6247962
。。是的,驱动器是共享的。。正如在帖子中所说的,除了列表之外,所有的东西似乎都很好用。好吧,那么你混合了两件事,让我解释一下答案!哦,你已经得到答案了:D