从 Docker 容器复制文件到本地机器


如果您正在进行一个需要频繁复制文件和文件夹的项目,无论是从容器到本地机器还是从本地机器到容器,Docker 提供了一种简单易行的方法。如果您已经构建了一个大型的 Docker 镜像,其中包含大量文件,并且在项目过程中需要复制进出容器的文件,那么将文件放入 Docker 构建上下文并重复构建镜像效率极低。相反,Docker 允许轻松地将文件复制进出容器。

在本文中,我们将学习允许我们执行此操作的命令。我们将查找从本地机器到容器以及反向复制文件的命令。

将文件从容器复制到本地机器。

如果您想将文件从容器复制到本地机器,可以使用以下命令。

sudo docker cp <Container ID>:<Path of file inside the container> <Path in the local machine>

例如:

如果您有一个 ID 为 f4628571q5gc 的 ubuntu 容器,并且您想将容器中路径 /usr/src/app/file.txt 中的文件复制到本地机器的 /home/username/Desktop/folder 中,可以使用以下命令:

sudo docker cp f4628571q5gc:/usr/src/app/file.txt home/username/Desktop/folder/

如果您想将文件粘贴到本地机器的当前目录,您可以简单地使用:

sudo docker cp f4628571q5gc:/usr/src/app/file.txt . (Don’t forget the dot)

如果您想将容器中特定文件夹中的所有文件复制到本地机器中的文件夹,请使用以下命令:

sudo docker cp f4628571q5gc:/usr/src/app/ home/username/Desktop/folder/

将文件从本地机器复制到容器

如果您想将文件从本地机器复制到容器,可以使用以下命令。

sudo docker cp <Path in the local machine> <Container ID>:<Path of file inside the container>

例如:

如果您有一个 ID 为 f4628571q5gc 的 ubuntu 容器,并且您想将本地机器中路径 /home/username/Desktop/folder/file.txt 中的文件复制到容器中的 /usr/src/app/ 中,可以使用以下命令:

sudo docker cp /home/username/Desktop/folder/file.txt f4628571q5gc:/usr/src/app/

如果您想将本地机器中文件夹中的所有文件复制到容器中的文件夹,请使用以下命令:

sudo docker cp /home/username/Desktop/folder f4628571q5gc:/usr/src/app/

总而言之,在您已经使用构建上下文构建了镜像之后,如果想要复制进出容器的文件和文件夹,您可以使用上面提到的命令轻松完成。

更新于:2020年10月1日

3K+ 次浏览

启动您的 职业生涯

完成课程获得认证

开始学习
广告