Как использовать docker-py (официальный клиент docker) для запуска оболочки bash?

Я пытаюсь использовать docker-py для запуска контейнера Docker и помещаю меня в оболочку bash в этом контейнере. Я дошел до запуска контейнера (я вижу это с docker ps, и я могу присоединиться к нему просто нормально с родным клиентом докер), но когда я использую attach() из официальной библиотеки Python, он просто дает мне пустую строку в ответ. Как мне прикрепить к моей оболочке bash?

>>> import docker
>>> c = docker.Client()
>>> container = c.create_container(image='d11wtq/python:2.7.7', command='/bin/bash', stdin_open=True, tty=True, name='docker-test')
>>> container
{u'Id': u'dd87e4ec75496d8369e0e526f343492f7903a0a45042d312b37859a81e575303', u'Warnings': None}
>>> c.start(container)
>>> c.attach(container)
''

1 ответ

Решение

В итоге я выпустил библиотеку для этого: https://github.com/d11wtq/dockerpty

import docker
import dockerpty

client = docker.Client()
container = client.create_container(
    image='busybox:latest',
    stdin_open=True,
    tty=True,
    command='/bin/sh',
)
client.start(container)

dockerpty.PseudoTerminal(client, container).start()
Другие вопросы по тегам