Я пытаюсь использовать 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_HOST
, DOCKER_TLS_VERIFY
, DOCKER_CERT_PATH
, потому что, насколько я знаю, я запускаю docker на своей машине обычным способом.)
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, я также могу отправить Dockerfile, используемый для построения образа, который предоставляет порты и имеет команду
CMD /usr/bin/janus -o --configs-folder=/usr/local/share/ct-camera/janus
Однако я пробовал другие изображения и имя изображения, которое включает репо, и ошибка всегда одинакова независимо от изображения!
Я также пробовал другие команды из этого пакета, но происходит то же самое.