在 docker 容器内将文件从 docker 移动到本地
Moving file from docker to local while inside docker container
我有一个 python 程序可以将输出文件存储在本地。现在我的代码在 docker 容器内 运行 我想将生成的输出文件(如 output.txt)移动到我的本地(在 docker 容器外)
我知道有一个命令可以将文件从 docker 传输到本地:
docker cp <containerId>:/file/path/within/container /host/path/target
#I tried like this inside docker container but it didn't work
os.system(sudo docker cp <containerId>:/file/path/within/container /host/path/target)
但是由于我的程序在 docker 内部执行,所以这不起作用,我想将文件作为代码推送到本地 运行s.
如果您有任何想法,请分享。
容器内的代码无法直接操作容器外的任何东西。容器的全部目的是将其与主机系统隔离开来;打破这个障碍会带来严重的安全后果,基本上会使容器变得毫无意义。
你可以做的是使用-v
(或运行docker cp
从容器内的主机挂载一个目录一旦您确信它已成功创建文件,容器就会成功;但是您将如何向外界传达这一事实?)
有
docker run --volume=`pwd`:/app myimage
你可以
cp myfile /app
容器内;这将从 Docker.
中创建 ./myfile
把容器当成一个Linux系统,你的问题会被认为是:如何在两个主机之间传输文件。
也许还有其他一些无需重新运行容器的方法:
scp
(推荐)在需要的时候搭配其他选项或工具,比如expect
可以处理ssh
的accept指纹或输入密码,假设172.17.0.1是主机的docker接口和ssh_port默认为22,ssh
进度监听docker
接口如0.0.0.0:22.
os.system(sudo scp /file/path/within/container user@172.17.0.1:/host/path/target)
- 其他客户端-服务器模型,例如
rsync
(客户端和服务器)、python SimpleHTTPServer
(服务器)和curl
| python request
| wget
(客户端)等等。但是不推荐这些,因为服务端和客户端都需要部署。
我有一个 python 程序可以将输出文件存储在本地。现在我的代码在 docker 容器内 运行 我想将生成的输出文件(如 output.txt)移动到我的本地(在 docker 容器外)
我知道有一个命令可以将文件从 docker 传输到本地:
docker cp <containerId>:/file/path/within/container /host/path/target
#I tried like this inside docker container but it didn't work
os.system(sudo docker cp <containerId>:/file/path/within/container /host/path/target)
但是由于我的程序在 docker 内部执行,所以这不起作用,我想将文件作为代码推送到本地 运行s.
如果您有任何想法,请分享。
容器内的代码无法直接操作容器外的任何东西。容器的全部目的是将其与主机系统隔离开来;打破这个障碍会带来严重的安全后果,基本上会使容器变得毫无意义。
你可以做的是使用-v
(或运行docker cp
从容器内的主机挂载一个目录一旦您确信它已成功创建文件,容器就会成功;但是您将如何向外界传达这一事实?)
有
docker run --volume=`pwd`:/app myimage
你可以
cp myfile /app
容器内;这将从 Docker.
中创建./myfile
把容器当成一个Linux系统,你的问题会被认为是:如何在两个主机之间传输文件。
也许还有其他一些无需重新运行容器的方法:
scp
(推荐)在需要的时候搭配其他选项或工具,比如expect
可以处理ssh
的accept指纹或输入密码,假设172.17.0.1是主机的docker接口和ssh_port默认为22,ssh
进度监听docker
接口如0.0.0.0:22.
os.system(sudo scp /file/path/within/container user@172.17.0.1:/host/path/target)
- 其他客户端-服务器模型,例如
rsync
(客户端和服务器)、python SimpleHTTPServer
(服务器)和curl
|python request
|wget
(客户端)等等。但是不推荐这些,因为服务端和客户端都需要部署。