如何使用dockerpy(dockersdk)将文件从主机复制到容器

2024-09-28 23:22:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道,有可能使用docker cp在主机和docker容器之间双向复制文件,也可以使用docker py从运行的容器中获取文件。但我不知道如何(或者甚至可能)使用docker py将文件从主机复制到运行的容器。 你们有没有遇到过这样的问题?是否可以使用pythonos.system执行命令。我想避免这种解决办法。在


Tags: 文件dockerpy双向执行命令systemcp容器
1条回答
网友
1楼 · 发布于 2024-09-28 23:22:44

这样的方法应该有效:

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)

然后像这样使用它:

^{pr2}$

相关问题 更多 >