gpt4 book ai didi

python - 为什么我的 python 脚本(导入 docker-py 包(下面链接))给出错误而不是运行我的 docker 容器?

转载 作者:太空宇宙 更新时间:2023-11-03 20:43:03 24 4
gpt4 key购买 nike

我正在尝试使用 https://docker-py.readthedocs.io/en/stable/index.html制作一个运行我的容器的 python 脚本。

安装包后(使用 import docker 导入,我的镜像名为“janus”),这是我的 python 脚本:

import docker
client = docker.from_env()
client.containers.run("janus")

当我运行脚本时,我得到


Traceback (most recent call last):
File "/home/milanlakhani/.local/lib/python3.6/site-packages/requests/packages/urllib3/util/timeout.py", line 124, in _validate_timeout
float(value)
TypeError: float() argument must be a string or a number, not 'Timeout'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "test_docker_python_sdk.py", line 3, in <module>
client.containers.run("janus")
File "/home/milanlakhani/.local/lib/python3.6/site-packages/docker/models/containers.py", line 803, in run
detach=detach, **kwargs)
File "/home/milanlakhani/.local/lib/python3.6/site-packages/docker/models/containers.py", line 861, in create
resp = self.client.api.create_container(**create_kwargs)
File "/home/milanlakhani/.local/lib/python3.6/site-packages/docker/api/container.py", line 429, in create_container
return self.create_container_from_config(config, name)
File "/home/milanlakhani/.local/lib/python3.6/site-packages/docker/api/container.py", line 439, in create_container_from_config
res = self._post_json(u, data=config, params=params)
File "/home/milanlakhani/.local/lib/python3.6/site-packages/docker/api/client.py", line 289, in _post_json
return self._post(url, data=json.dumps(data2), **kwargs)
File "/home/milanlakhani/.local/lib/python3.6/site-packages/docker/utils/decorators.py", line 46, in inner
return f(self, *args, **kwargs)
File "/home/milanlakhani/.local/lib/python3.6/site-packages/docker/api/client.py", line 226, in _post
return self.post(url, **self._set_request_timeout(kwargs))
File "/home/milanlakhani/.local/lib/python3.6/site-packages/requests/sessions.py", line 581, in post
return self.request('POST', url, data=data, json=json, **kwargs)
File "/home/milanlakhani/.local/lib/python3.6/site-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/home/milanlakhani/.local/lib/python3.6/site-packages/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/home/milanlakhani/.local/lib/python3.6/site-packages/requests/adapters.py", line 449, in send
timeout=timeout
File "/home/milanlakhani/.local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 587, in urlopen
timeout_obj = self._get_timeout(timeout)
File "/home/milanlakhani/.local/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 302, in _get_timeout
return Timeout.from_float(timeout)
File "/home/milanlakhani/.local/lib/python3.6/site-packages/requests/packages/urllib3/util/timeout.py", line 154, in from_float
return Timeout(read=timeout, connect=timeout)
File "/home/milanlakhani/.local/lib/python3.6/site-packages/requests/packages/urllib3/util/timeout.py", line 94, in __init__
self._connect = self._validate_timeout(connect, 'connect')
File "/home/milanlakhani/.local/lib/python3.6/site-packages/requests/packages/urllib3/util/timeout.py", line 127, in _validate_timeout
"int, float or None." % (name, value))

也许我错过了一些非常明显的东西,因为我是初学者,但在 docker-py 文档中我不明白为什么这不起作用。 (我认为我不需要设置环境变量,例如 DOCKER_HOSTDOCKER_TLS_VERIFYDOCKER_CERT_PATH 因为我在我的机器上运行 docker据我所知,这是正常的方式。)

如果您需要更多详细信息,请告诉我,我还可以发送用于构建镜像的 Dockerfile,该文件公开端口并具有命令

CMD /usr/bin/janus -o --configs-folder=/usr/local/share/ct-camera/janus

但是,我尝试了其他图像和包含存储库的图像名称,并且无论图像如何,错误始终相同!

我还尝试了此包中的其他命令,但发生了同样的事情。

最佳答案

我认为您需要提供正确的图像名称 - 类似于:

client.containers.run("myrepo.com/janus")

并确保拥有最新的requests包:

pip3 install -U requests

关于python - 为什么我的 python 脚本(导入 docker-py 包(下面链接))给出错误而不是运行我的 docker 容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56752500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com