Anonim

Nếu bạn đang cần một nền tảng container nguồn mở toàn diện để tạo sự độc lập giữa các ứng dụng và cơ sở hạ tầng, Docker là lựa chọn an toàn nhất của bạn. Nếu bạn đã có cơ hội sử dụng nó, bạn đã biết nó có khả năng và dễ sử dụng như thế nào

Một số lượng lớn các công ty đám mây và CNTT thấy nó cực kỳ hữu ích, và sự phổ biến của nó chắc chắn là xứng đáng.

Tuy nhiên, điều này không làm cho nó hoàn hảo. Bằng chứng có thể được nhìn thấy trong những hạn chế đi kèm với việc loại bỏ hình ảnh, khối lượng, thùng chứa và mạng. Mặc dù các lệnh này có sẵn, chúng không toàn diện như người dùng có thể muốn.

Tại đây bạn sẽ thấy những vấn đề chính mà người dùng gặp phải, cũng như các giải pháp cho chúng. Bạn sẽ tìm hiểu làm thế nào để loại bỏ hình ảnh và container một cách dễ dàng.

Vấn đề

Công nghệ container cung cấp một cách trực quan hóa các hệ điều hành. Nó cho phép một ứng dụng được đóng gói với tất cả những gì nó cần để chạy nó, cho phép ứng dụng hoạt động độc lập với HĐH.

Hình ảnh container là các gói ứng dụng thực thi độc lập bao gồm mọi thứ cần thiết để ứng dụng hoạt động chính xác. Thời gian chạy, mã, cấu hình, và các công cụ hệ thống và thư viện được chứa trong mỗi hình ảnh.

Khi bạn sử dụng Docker, những hình ảnh này tích lũy. Theo thời gian, một số lượng lớn hình ảnh, khối lượng dữ liệu và vùng chứa không sử dụng được tích lũy, tạo ra một môi trường Docker đông đúc. Khi điều này xảy ra, cần phải làm mới môi trường để nền tảng hoạt động như bình thường.

Có nhiều lệnh có thể thực hiện điều này, vì vậy hãy xem các cách chính để khử lộn xộn môi trường Docker của bạn.

Xóa hình ảnh Docker

Trước khi bạn có thể loại bỏ những hình ảnh không cần thiết, bạn cần phân biệt chúng với những hình ảnh hữu ích. Điều này có thể được thực hiện dễ dàng bằng cách liệt kê tất cả các hình ảnh mà hệ thống của bạn chứa bằng cách sử dụng lệnh quản lý hình ảnh.

Đây là những gì nó trông giống như:

$ docker image #list the most recently created images

Hoặc là

$ docker image -a #list all images

Với lệnh thứ hai, bạn sẽ thấy tất cả các hình ảnh docker của bạn. Tất cả bạn phải làm là tìm thấy cái gọi là 'hình ảnh lơ lửng'. Đây là tất cả các hình ảnh Docker không chứa thẻ. Không có thẻ, sẽ không có kết nối với các hình ảnh được gắn thẻ, điều đó có nghĩa là chúng không còn hữu ích nữa.

Bạn có thể xóa một hoặc nhiều hình ảnh bằng cách sử dụng ID hình ảnh. Để làm điều này, sử dụng một trong các lệnh sau:

$ docker rmi d65c4d6a3580 #remove a single image

$ docker rmi 612866ff4869 e19e33310e49 abe0cd4b2ebc #remove multiple images

Một giải pháp thuận tiện hơn là sử dụng cờ lọc -f để liệt kê tất cả các hình ảnh lơ lửng.

Để xóa những hình ảnh này và dọn sạch không gian đĩa, hãy sử dụng một trong các lệnh sau:

$ docker image prune #interactively remove dangling images

Hoặc là

$ docker rmi $(docker images -q -f dangling=true)

Bạn có thể xóa tất cả các hình ảnh Docker theo cách tương tự. Liệt kê chúng bằng cách sử dụng lệnh $ docker hình ảnh, sau đó loại bỏ chúng bằng cách sử dụng như sau:

$ (docker rmi $(docker images -a -q)

Một tùy chọn khác là xóa các hình ảnh theo một mẫu nhất định. Để liệt kê chúng, sử dụng lệnh sau:

$ docker images -a | grep "pattern"

Sau đó, loại bỏ chúng bằng cách sử dụng:

$ docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi

Loại bỏ container

Một điều khác bạn có thể muốn làm sau khi làm việc với Docker trong một khoảng thời gian nhất định là xóa một hoặc nhiều container.

Tương tự như loại bỏ hình ảnh, trước tiên bạn cần liệt kê chúng bằng cách sử dụng lệnh sau:

$ docker ps

Hoặc là

$ docker ps -a

Khi bạn tìm thấy các thùng chứa bạn muốn loại bỏ, sử dụng ID của họ để làm điều đó.

$ docker rm 0fd99ee0cb61 #remove a single container

$ docker rm 0fd99ee0cb61 0fd99ee0cb61 #remove multiple containers

Trong trường hợp container bạn đang cố xóa đang chạy, bạn có thể sử dụng lệnh sau để dừng nó:

$ docker stop 0fd99ee0cb61

$ docker rm -f 0fd99ee0cb61

Cuối cùng, bạn có thể dừng và xóa tất cả các vùng chứa không cần thiết bằng cách sử dụng các lệnh sau:

$ docker stop $(docker ps -a -q) #stop all containers

$ docker container prune #interactively remove all stopped containers

Hoặc là

$ docker rm $(docker ps -qa)

Điều này sẽ cho phép bạn giải phóng không gian đĩa có giá trị và bắt đầu mới.

Lời cuối cùng

Như bạn có thể thấy, việc loại bỏ hình ảnh Docker và container không gây khó khăn như nó có thể. Bây giờ bạn đã biết các lệnh này, bạn có thể có nhiều quyền kiểm soát hơn đối với trải nghiệm Docker của bạn.

Tất nhiên, đây chỉ là một số lệnh và bạn có thể sử dụng nhiều kết hợp khác. Tuy nhiên, những thứ này sẽ làm tốt công việc, vì vậy hãy thử chúng.

Làm thế nào để xóa tất cả các hình ảnh docker