首页 > 解决方案 > 如何将文件添加到现有的 docker 镜像?

问题描述

我有一个基于 Windows 的 docker 容器,运行它并在其中运行一个应用程序。但有时我需要向图像添加一个文件夹并运行另一个应用程序。如何递归添加

\folder
 folder\*.*
\subfolder1
 subfolder1\*.*
\subfolder2
 subfolder2\*.*

从我的主机到我的图像?

标签: docker

解决方案


您可以使用docker cp

docker cp 实用程序将 SRC_PATH 的内容复制到 DEST_PATH。您可以从容器的文件系统复制到本地机器,或者反过来,从本地文件系统复制到容器。

docker cp /path/to/dir mycontainer:/path/in/container/

cp 命令的行为类似于 Unix cp -a 命令,在目录中递归复制并尽可能保留权限。

此外,如文档中所述,如果这不可行,您可以使用一些带有 tar 的 hack,如下所示。

tar Ccf $(dirname SRC_PATH) - $(basename SRC_PATH) | docker exec -i CONTAINER tar Cxf DEST_PATH -

推荐阅读