2015-09-27 25 views
5

Tôi mới bắt đầu sử dụng Docker, và tôi thích nó rất nhiều, nhưng tôi có một dòng công việc clunky mà tôi muốn sắp xếp hợp lý. Khi tôi lặp lại kịch bản Dockerfile Tôi sẽ thường thử nghiệm mọi thứ sau khi xây dựng bằng cách khởi chạy phiên bash , chạy một số lệnh, tìm ra rằng và gói đó không được cài đặt đúng cách, sau đó quay lại và tinh chỉnh Dockerfile của tôi.làm thế nào để "docker chạy" một phiên làm việc trên một cài đặt Linux tối thiểu và ngay lập tức xé container?

Hãy nói rằng tôi đã xây dựng được hình ảnh của tôi và được dán nhãn nó như buildfoo, tôi muốn chạy nó như này:

 $> docker run -t -i buildfoo 

       ... enter some bash commands.. then ^D to exit 

Sau đó, tôi sẽ có một hoạt động chứa mà tôi phải dọn dẹp. Thông thường tôi chỉ nuke tất cả mọi thứ như thế này:

docker rm --force `docker ps -qa` 

này hoạt động OK cho tôi .. Tuy nhiên, tôi không muốn phải tự loại bỏ các container.

Bất kỳ mẹo nào được chấp nhận một cách biết ơn!


Một số Chi tiết bổ sung nhỏ:

Chạy tối thiểu centos 7 hình ảnh và sử dụng bash shell như tôi.

Trả lời

10

Vui lòng sử dụng cờ -rm của lệnh chạy trình neo. --rm=true hoặc chỉ --rm.

Tự động xóa vùng chứa khi nó thoát (không tương thích với -d). Ví dụ:

docker run -i -t --rm=true centos /bin/bash 

hoặc

docker run -i -t --rm centos /bin/bash 
+2

Bạn có chắc chắn nó là '--rm = false'? –

+0

đã cập nhật câu trả lời chính xác. cảm ơn vì đã chỉ ra @Renaud Pacalet – spectre007

+0

hoạt động! cảm ơn –

1

tôi sử dụng the alias dr

alias dr='docker run -it --rm' 

Cung cấp cho bạn:

dr myimage 
ls 
... 
exit 

Không còn chứa chạy.

2

Mặc dù ở trên vẫn hoạt động, lệnh dưới đây tận dụng cú pháp mới Docker của

docker container run -it --rm centos bash 
Các vấn đề liên quan