2014-06-15 29 views
7

Tôi đang cố gắng sử dụng docker-py để chạy vùng chứa docker và thả tôi vào một bash shell trong vùng chứa đó. Tôi nhận được như xa như chạy container (tôi có thể nhìn thấy nó với docker ps, và tôi có thể đính kèm nó chỉ tốt với khách hàng docker bản địa), nhưng khi tôi sử dụng attach() từ thư viện Python chính thức, nó chỉ mang lại cho tôi một chuỗi rỗng trong phản ứng. Làm cách nào để đính kèm vào bash shell của tôi?Làm thế nào để sử dụng docker-py (trình khách docker chính thức) để bắt đầu một 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) 
'' 

Trả lời

7

tôi đã kết thúc phát hành một thư viện cho việc này: 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

Đây là công việc thực sự tuyệt vời. Tôi đang sử dụng mã này trong mã của riêng tôi. Cảm ơn bạn đã tạo và chia sẻ nó. –

Các vấn đề liên quan