Интерактивное выполнение Docker с помощью docker-pyPython

Программы на Python
Гость
Интерактивное выполнение Docker с помощью docker-py

Сообщение Гость »

Я пытаюсь реализовать что-то эквивалентное:

Код: Выделить всё

docker exec -it  /bin/bash
Т.е. запустите команду в контейнере и подключите stdin и stdout моей программы к stdin и stdout команды.
Мой чтение документации, кажется, подразумевает, что следующее должно выполнить эту работу:

Код: Выделить всё

import docker
client = docker.from_env()
container, = client.containers.list()
container.exec_run(['/usr/local/bin/bash'], stdin=True, tty=True)
(Есть один контейнер, в котором работает bash:latest)
Но это не похоже на стандартный ввод программы подключен к команде exec.
Командная строка просто находится там, повторяя мой ввод, но никак на него не реагируя.
Я также пытался взаимодействовать с необработанным сокетом (возвращаемым exec_run, а не docker.sock):

Код: Выделить всё

_, s = container.exec_run(['/usr/local/bin/bash'], stdin=True, tty=True, socket=True)
s.write('echo hello world')
Но я получаю сообщение UnsupportedOperation: файл или поток недоступны для записи.
Вопрос: что мне нужно сделать? сделать, чтобы позволить пользователю моего кода взаимодействовать со стандартным вводом-выводом команды, выполняемой в контейнере, с помощью docker-py?

Подробнее здесь: https://stackoverflow.com/questions/781 ... -docker-py

Вернуться в «Python»