可以从Docker镜像中检索不是容器的文件吗?

时间:2017-12-11 02:59:39

标签: docker

我创建了一个使用docker的应用程序。我已经建立了这样的图像:docker build -t myapp .

在我的图片中(使用docker run -it myapp /bin/bash访问),会创建一个图片文件。

我想获取该文件以便在我的本地查看,因为我发现在Docker上查看图像是一个复杂的过程。

我尝试了以下内容:docker cp myapp:/result.png ./基于网上看到的建议,但我收到以下错误:Error response from daemon: No such container: myapp

2 个答案:

答案 0 :(得分:1)

您可以将本地文件夹映射到图像中的卷,然后将该文件从图像中复制出来。

finalSeq <- subset(seqRules, rhs(x) %ain% "\"id_58\"")

答案 1 :(得分:1)

图像名称!=容器名称

myapp图片的名称,它不是正在运行的容器。

使用docker run时,您正在创建一个基于myapp图像的容器。系统会为其分配一个ID,您可以使用docker ps查看该ID。例如:

$ docker ps
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                    NAMES
aa58c8ff2f34        portainer/portainer   "/portainer"        4 months ago        Up 5 days           0.0.0.0:9909->9000/tcp   portainer_portainer_1

在这里,您可以看到基于portainer/portainer图片的容器。它的ID为aa58c8ff2f34

获得容器的ID后,您可以将其传递给docker cp以复制文件。

指定容器名称

另一种方法,如果你自动化/编写脚本,可能更可取的方法是指定容器的名称而不必查找它。

docker run -it --name mycontainer myapp /bin/bash

这将创建一个名为mycontainer的容器。然后,您可以将该名称提供给docker cp或其他命令。请注意,您的容器仍然具有上述示例中的ID,但您也可以使用此名称来引用它。