2014-06-15 9 views
7

मैं डॉकर कंटेनर चलाने के लिए डॉकर-पीई का उपयोग करने की कोशिश कर रहा हूं और मुझे उस कंटेनर में एक बैश खोल में छोड़ देता हूं। मैं कंटेनर को चलाने के रूप में प्राप्त करता हूं (मैं इसे docker ps के साथ देख सकता हूं, और मैं इसे मूल डॉकर क्लाइंट के साथ ठीक से जोड़ सकता हूं), लेकिन जब मैं आधिकारिक पायथन लाइब्रेरी से attach() का उपयोग करता हूं, तो यह मुझे एक खाली स्ट्रिंग देता है प्रतिक्रिया। मैं अपने बैश खोल से कैसे संलग्न करूं?बैश खोल शुरू करने के लिए डॉकर-पीई (आधिकारिक डॉकर क्लाइंट) का उपयोग कैसे करें?

>>> 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) 
'' 

उत्तर

7

मैं इस के लिए एक पुस्तकालय को रिहा समाप्त हो गया: 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

यह वास्तव में महान काम है। मैं इसे अपने कोड में उपयोग कर रहा हूं। इसे बनाने और साझा करने के लिए धन्यवाद। –

संबंधित मुद्दे