如何使用docker-py(官方docker客户端)启动bash shell?

10

我正在尝试使用docker-py运行一个Docker容器,并让我进入该容器中的bash shell。我已经成功地运行了容器(可以通过docker ps查看,而且我可以使用本机Docker客户端连接到它),但是当我使用官方Python库中的attach()时,它只会给我一个空字符串作为响应。如何连接我的bash shell?

>>> 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个回答

11

我最终发布了一个库来实现这个功能: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()

这真是太棒了。我正在将它用于我的代码中。感谢您的创作和分享。 - Michael Barton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接