我知道,有一种方法可以使用docker cp在主机和docker容器之间双向复制文件,也可以使用docker-py从正在运行的容器中获取文件.但是我无法弄清楚如何(或什至有可能)使用docker-py将文件从主机复制到正在运行的容器.
你们有处理此类问题的经验吗?是否有可能做或者我必须使用python os.system执行命令.我想避免这种解决方案.
最佳答案
这样的事情应该起作用:
import os
import tarfile
import docker
client = docker.from_env()
def copy_to(src,dst):
name,dst = dst.split(':')
container = client.containers.get(name)
os.chdir(os.path.dirname(src))
srcname = os.path.basename(src)
tar = tarfile.open(src + '.tar',mode='w')
try:
tar.add(srcname)
finally:
tar.close()
data = open(src + '.tar','rb').read()
container.put_archive(os.path.dirname(dst),data)
然后像这样使用它:
copy_to('/local/foo.txt','my-container:/tmp/foo.txt')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。