2015-10-22 24 views
5

Tôi đã nhìn thấy bài viết cho thấy làm thế nào để loại bỏ các container đã thoát được liệt kê với docker ps -q -f status=exited, nhưng tôi cũng muốn dọn dẹp 'tạo ra' nhưng không 'chạy' container. Có an toàn để loại bỏ các thùng chứa với trạng thái 'được tạo' hay không có nhược điểm này?Có an toàn để loại bỏ các vùng chứa Docker được liệt kê với `docker ps -f status = created` không?

Trả lời

4

container Docker với created tình trạng là container mà được tạo ra từ những hình ảnh, nhưng không bao giờ bắt đầu. Loại bỏ chúng không có tác động như bạn sẽ không chạy bất kỳ quy trình nào trong vùng chứa và gây ra thay đổi trong trạng thái của vùng chứa đã tạo, trong trường hợp sau này yêu cầu phải được cam kết. Điều này thường được thực hiện để tăng tốc độ bắt đầu container và đảm bảo tất cả các cấu hình được giữ sẵn sàng.

Refer Docker Docs

Các Docker lệnh create tạo ra một lớp chứa có khả năng ghi trên hình ảnh cụ thể và chuẩn bị nó cho chạy lệnh quy định. ID vùng chứa sau đó được in thành STDOUT. Điều này tương tự như docker chạy -d ngoại trừ container không bao giờ bắt đầu. Sau đó, bạn có thể sử dụng lệnh khởi động docker để bắt đầu vùng chứa tại bất kỳ thời điểm nào.

Điều này hữu ích khi bạn muốn thiết lập cấu hình vùng chứa trước thời gian để sẵn sàng bắt đầu khi bạn cần. Trạng thái ban đầu của vùng chứa mới được tạo.

0

Có hai khả năng cho một container được trong tình trạng tạo:

  1. Như đã giải thích bằng container @askb Docker tạo ra từ các hình ảnh sử dụng Docker tạo lệnh sẽ kết thúc trong lệnh create
  2. Vùng chứa docker được tạo bởi lệnh chạy nhưng không thể khởi động. Nhiều nguyên nhân ở đây nhưng easiestone là một vùng chứa docker với một ánh xạ cổng cho một bản đồ đã được liên kết

Để trả lời câu hỏi, trong cả hai trường hợp, hãy xóa chúng an toàn.

Một cách để tạo lại chứa Docker trong tình trạng tạo ra thông qua các lệnh chạy là:

docker pull loicmathieu/vsftpd 
docker run -p 621:21 -d loicmathieu/vsftpd ftp 
docker run -p 621:21 -d loicmathieu/vsftpd ftp 

Sau đó Docker ps -a sẽ cung cấp cho bạn một cái gì đó giống như

CONTAINER ID  IMAGE     COMMAND     CREATED    STATUS 
e60dcd51e4e2  loicmathieu/vsftpd  "/start.sh ftp"   6 seconds ago  Created 
7041c77cad53  loicmathieu/vsftpd  "/start.sh ftp"   16 seconds ago  Up 15 seconds 
Các vấn đề liên quan