首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >docker-py : Docker Python sdk container.put_archive不工作

docker-py : Docker Python sdk container.put_archive不工作
EN

Stack Overflow用户
提问于 2021-03-28 18:07:24
回答 2查看 531关注 0票数 0

我已经使用/root/目录下的put_archive将一个example.py文件从本地系统复制到容器。我想在容器中运行该文件。在容器中找不到该文件。下面是我的代码:我的代码出了什么问题?我希望put_archive会在/root目录下复制一个example.py文件。在容器中找不到该文件。

代码语言:javascript
运行
复制
import docker
import os
import tarfile
import time
import json
from io import BytesIO

client = docker.from_env()
image = client.images.pull("malark79/ibm-cloud-python-sdk")

container = client.containers.run("malark79/ibm-cloud-python-sdk", "pwd", detach=True)
print("Docker logs: " + str(container.logs()))

print(container.id)
print(container.name)
print(container.image)

f = open("example.py", "w") //open local file
with tarfile.open("example.py.tar.gz", "w:gz") as tar:
        tar.add(f.name, arcname=os.path.basename(f.name))
t = open("example.py.tar.gz", "rb")

works = container.put_archive("/root/", data=t)

t.close()
if not works:
        print("Can't create file in container")

container = client.containers.run("malark79/ibm-cloud-python-sdk", "ls -al /root", detach=True)
print("Docker logs: " + str(container.logs())) ### does not display file example.py

container = client.containers.run("malark79/ibm-cloud-python-sdk", "/usr/bin/python3 /root/example.py", detach=True)
print("Docker logs: " + str(container.logs()))  ### [Errno 2] No such file or directory\n"
EN

Stack Overflow用户

发布于 2021-03-28 18:51:44

如果您正在尝试将代码复制到Docker空间并运行它,那么Docker镜像是更好的技术匹配。这段Python代码几乎完全对应于Dockerfile:

代码语言:javascript
运行
复制
FROM malark79/ibm-cloud-python-sdk
WORKDIR /root
COPY example.py .
CMD /usr/bin/python3 /root/example.py

通常,我会运行docker build并在最终代码中引用构建的映像,而不会尝试手动复制脚本。如果您每次都需要重新构建映像,有一个client.images.build()方法可以做到这一点。

在示例代码中,每次调用client.containers.run()都会创建一个新容器。如果您运行docker ps -a (或调用client.containers.list(all=True)),您应该能够看到这一点。最后两个命令在未修改的基本映像上运行,没有复制应用程序代码。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66840278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档