是否可以将文件从 docker 容器直接保存到主机
Is it possible to save file from docker container to host directly
我有一个容器,其中 运行 是一个 Python 脚本,用于从 Amazon S3 下载一些大文件。这个容器的目的只是为了下载文件,所以我把它们放在我的主机上。因为我的应用程序需要这些文件(运行在一个单独的容器中使用不同的图像),我将挂载从我的主机绑定到应用程序的容器,即从第一个容器下载的目录。
注意 1: 我不想 运行 直接从我的主机上运行脚本,因为它有各种我不想安装在我的主机上的依赖项主机。
注意 2: 我不想在构建应用程序映像时下载文件,因为在需要时重建映像会花费太多时间。我想从外部传递这些文件并在需要时更新它们。
有没有办法让第一个容器直接将这些文件下载到我的主机上,而不是先将它们下载到容器中,然后将它们复制到主机上,因为它们需要 space 清理前所需的 2 倍上容器?
目前流程如下:
- 构建临时容器镜像并运行它以便下载
模特
- 将文件从容器复制到主机
- 清理不需要的容器和镜像
注意:如果有一种方法可以将文件从第一个容器直接下载到第二个容器并覆盖它们(如果存在),它也可能有效。
谢谢!
您可以为此使用主机卷。例如
docker run -v "$(pwd)/download:/data" your_image
运行 your_image
和容器内写入 /data
的任何内容实际上会写入 ./download
目录中的主机。
我有一个容器,其中 运行 是一个 Python 脚本,用于从 Amazon S3 下载一些大文件。这个容器的目的只是为了下载文件,所以我把它们放在我的主机上。因为我的应用程序需要这些文件(运行在一个单独的容器中使用不同的图像),我将挂载从我的主机绑定到应用程序的容器,即从第一个容器下载的目录。
注意 1: 我不想 运行 直接从我的主机上运行脚本,因为它有各种我不想安装在我的主机上的依赖项主机。
注意 2: 我不想在构建应用程序映像时下载文件,因为在需要时重建映像会花费太多时间。我想从外部传递这些文件并在需要时更新它们。
有没有办法让第一个容器直接将这些文件下载到我的主机上,而不是先将它们下载到容器中,然后将它们复制到主机上,因为它们需要 space 清理前所需的 2 倍上容器?
目前流程如下:
- 构建临时容器镜像并运行它以便下载 模特
- 将文件从容器复制到主机
- 清理不需要的容器和镜像
注意:如果有一种方法可以将文件从第一个容器直接下载到第二个容器并覆盖它们(如果存在),它也可能有效。
谢谢!
您可以为此使用主机卷。例如
docker run -v "$(pwd)/download:/data" your_image
运行 your_image
和容器内写入 /data
的任何内容实际上会写入 ./download
目录中的主机。