Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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 run--卷不断创建随机卷,而不使用指定的卷_Docker_Docker Volume - Fatal编程技术网

Docker run--卷不断创建随机卷,而不使用指定的卷

Docker run--卷不断创建随机卷,而不使用指定的卷,docker,docker-volume,Docker,Docker Volume,Docker一直在创建随机卷,而不是在运行Docker run…时使用I-specify 我将从没有卷开始 $ docker volume ls DRIVER VOLUME NAME 我将创建一个 docker volume create myvol 它将被创建 $ docker volume ls DRIVER VOLUME NAME local myvol 我将使用卷启动一个容器 $ docker run

Docker一直在创建随机卷,而不是在运行
Docker run…
时使用I-specify

我将从没有卷开始

$ docker volume ls
DRIVER              VOLUME NAME
我将创建一个

docker volume create myvol
它将被创建

$ docker volume ls
DRIVER              VOLUME NAME
local               myvol
我将使用卷启动一个容器

$ docker run -d \
  --name myapp \
  --publish 1337:1337 \
  --volume myvol:/my-work-dir/.tmp \
  foo/bar:tag
我会再次检查我的卷,我有我创建的卷和一个新卷

$ docker volume ls
DRIVER              VOLUME NAME
local               9f7ffe30c24821c8c2cf71b4228a1ec7bc3ad6320c05451e42661a4e3c2c0fb7
local               myvol
为什么
myvol
没有被使用?为什么要创建新卷?

如何使用卷: 要创建卷,请执行以下操作:

docker volume create my-vol
要使用此卷,请执行以下操作:

docker run -d  --name devtest -v my-vol:/app   nginx:latest

当您使用的映像将Dockerfile中的卷定义为容器路径,而您在run命令中未将其定义为卷时,会发生这种情况。当您有一个没有源的卷(也称为匿名卷)时,Docker会为卷名创建guid。您可以在图像上使用
docker image inspect
,查看该图像中定义的卷。如果您检查容器(
docker container inspect
),您将看到您的卷正在使用,只是有另一个匿名卷指向另一个路径也在使用。

就是这样。我在
Dockerfile
中使用了一个
,该卷与我用于
docker--run的
--卷
不匹配。删除
Dockerfile
中的
VOLUME
,只需使用
--VOLUME
标志即可运行
docker run
。在后续的
docker运行之后,不再创建未命名卷。谢谢这和OP做的有什么不同?OP现在已经编辑了他的问题。在docker volume create创建卷之前,这将创建一个名为myvol的容器,而不是一个名为myvol的卷。您可以在有问题的历史中看到,
--name
选项起作用,至少在我当前版本的docker上是这样,它只是没有记录在
--help
输出中。
docker volume create
命令从不创建容器,它会创建具有该名称的卷。对不起,对我来说,总是--为其他人指定一个眼线标记来指定容器的名称;-)我们没有仔细阅读完整的命令