复制 Docker 容器内文件到宿主机

在使用 Docker 进行应用程序开发或部署时,经常需要将容器内的文件复制到宿主机上。这可以通过使用 Docker 命令或 Docker API 来实现。本文将介绍如何通过这两种方式来复制 Docker 容器内的文件到宿主机上,并提供相应的代码示例。


使用 Docker 命令复制文件

Docker 提供了 docker cp 命令来复制容器内的文件到宿主机上。该命令的基本语法如下:


docker cp <容器名或ID>:<容器内文件路径> <宿主机文件路径>

以下是一个示例,假设我们有一个名为 mycontainer 的容器,并且想要将容器内的 /app/data.txt 文件复制到宿主机的 /tmp 目录下:


docker cp mycontainer:/app/data.txt /tmp

这样,/app/data.txt 文件就会被复制到宿主机的 /tmp 目录下。


使用 Docker API 复制文件

除了使用 Docker 命令,我们还可以使用 Docker API 来复制文件。Docker API 提供了一组 RESTful 接口,我们可以通过发送 HTTP 请求来操作 Docker。


以下是一个使用 Docker API 复制文件的示例,假设我们有一个名为 mycontainer 的容器,并且想要将容器内的 /app/data.txt 文件复制到宿主机的 /tmp 目录下:


import requests


# 定义 Docker API 地址

docker_api_url = 'http://localhost:2375'


# 定义容器名或ID

container_name_or_id = 'mycontainer'


# 定义容器内文件路径

container_file_path = '/app/data.txt'


# 定义宿主机文件路径

host_file_path = '/tmp/data.txt'


# 构造复制文件的 URL

url = f'{docker_api_url}/containers/{container_name_or_id}/archive?path={container_file_path}'


# 发送 GET 请求获取文件内容

response = requests.get(url)


# 将文件内容写入宿主机文件

with open(host_file_path, 'wb') as f:

    f.write(response.content)

以上代码使用了 Python 的 requests 库来发送 HTTP 请求,并通过 GET 请求获取了容器内文件的内容。将获取到的文件内容写入宿主机文件即可完成文件的复制。


结语

本文介绍了如何使用 Docker 命令和 Docker API 来复制容器内的文件到宿主机上。通过这两种方式,我们可以方便地获取容器内的文件,并进行进一步的处理或分析。无论是使用 Docker 命令还是 Docker API,都可以根据自己的实际需求选择合适的方式来进行文件复制操作。


希望本文对你理解如何复制 Docker 容器内文件到宿主机有所帮助。如果你对 Docker 还有其他相关问题,欢迎继续探索和学习。


参考资料

Docker Documentation: [docker cp](

Docker Documentation: [Docker Remote API](


———————————–

©著作权归作者所有:来自51CTO博客作者mob64ca12e41d46的原创作品,请联系作者获取转载授权,否则将追究法律责任

复制docker 容器内文件到宿主机

https://blog.51cto.com/u_16213380/7087608