<p>我在工作一天后发现了这个问题。容器应该运行put_archive()命令才能工作</p>
<p>我的容器没有运行,因此无法工作</p>
<p>以下是工作代码:</p>
<pre><code>import tarfile
import time
import json
from io import BytesIO
client = docker.from_env()
image = client.images.pull("malark79/ibm-cloud-python-sdk")
for container in client.containers.list():
print(container.id)
print(container.name)
print(container.image)
container = client.containers.get(container.id)
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)
print("src " + srcname)
with tarfile.open("vpc-example.tar", 'w') as tar:
try:
tar.add(srcname)
finally:
tar.close()
with open('vpc-example.tar', 'rb') as fd:
ok = container.put_archive(path="/", data=fd)
if not ok:
raise Exception('Put file failed')
else:
print("no exception")
copy_to("./vpc-example.py", container.name+":/vpc-example.py")
cmd="/usr/bin/python3 /vpc-example.py"
code, str = container.exec_run(cmd)
print(code)
print(str)
</code></pre>