2014-06-15 20 views
7

Sto tentando di utilizzare docker-py per eseguire un contenitore finestra mobile e rilasciarmi in una shell bash in quel contenitore. Arriva fino al container (lo posso vedere con docker ps e posso collegarlo perfettamente al client docker nativo), ma quando uso attach() dalla libreria Python ufficiale, mi dà solo una stringa vuota risposta. Come posso allegare alla mia shell bash?Come utilizzare docker-py (client docker ufficiale) per avviare una shell 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) 
'' 

risposta

7

ho finito per rilasciare una libreria per questo: 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() 
+0

Questo è davvero grande opera. Sto usando questo nel mio codice. Grazie per averlo creato e condiviso. –

Problemi correlati