Двунаправленная связь с 'docker exec -it bash <container_id>' с использованием docker-py

Я не могу понять, как включить асинхронный ввод-вывод с помощью сеанса оболочки контейнера, используя docker-py SDK. То, чего я, по сути, пытаюсь достичь - это иметь рабочий эквивалент docker exec -it bash $container_id в докер-ру.

Очевидно, stdout не создает проблем. Просто нет (на первый взгляд очевидного) способа на самом деле писать в stdin для взаимодействия с оболочкой запущенного контейнера. Это действительно так?

cmd = "bash"
cli = docker.DockerClient()
cli.containers.get(container_id)
socket = cli.exec_run(cmd, stdin=True, socket=True)
socket.writable() # => False

Я тоже пробовал бегать 'bin/bash -c "export TERM=xterm; exec bash" как cmd и добавление tty флаг exec_run. Излишне говорить, что безрезультатно.

Я делаю что-то неправильно?

0 ответов

Другие вопросы по тегам