我知道,有可能使用以下方法在主机和 docker 容器之间双向复制文件docker cp
并且还可以使用 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')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)