Trong quá trình quản lý Docker container, đôi khi bạn cần xoá những container không còn sử dụng để giải phóng tài nguyên và giữ cho hệ thống sạch sẽ. Docker cung cấp nhiều cách để bạn xoá container một cách dễ dàng và hiệu quả. Bài viết này sẽ hướng dẫn chi tiết các cách khác nhau để xoá một Docker container, bao gồm các tình huống xoá từng container, xoá container đã dừng, và xoá tất cả các container cùng lúc.

Xoá một Docker container đang chạy

Nếu container đang chạy, trước tiên bạn cần dừng nó trước khi xoá. Docker không cho phép xoá trực tiếp container đang chạy.

Bước 1: Dừng container

Để dừng container đang chạy, bạn có thể sử dụng lệnh:

docker stop <container_id_or_name>

Ví dụ:

docker stop my_container

Hoặc nếu bạn biết container ID:

docker stop 123abc456

Bước 2: Xoá container

Sau khi container đã dừng, bạn có thể xoá nó bằng lệnh docker rm:

docker rm <container_id_or_name>

Ví dụ:

docker rm my_container

Lệnh này sẽ xoá container với tên hoặc ID là my_container.

Xoá một container đã dừng

Nếu container đã dừng trước đó, bạn có thể trực tiếp xoá nó mà không cần dừng lại. Dưới đây là lệnh để thực hiện:

docker rm <container_id_or_name>

Ví dụ:

docker rm my_stopped_container

Docker sẽ chỉ xoá các container đã dừng. Nếu container đang chạy, bạn sẽ gặp thông báo lỗi và cần dừng container trước khi xoá.

Xoá container chạy tự động với lệnh docker run

Một cách nhanh chóng để tự động xoá container sau khi container dừng là sử dụng cờ --rm khi khởi chạy container. Điều này sẽ giúp bạn không phải xoá container thủ công.

docker run --rm <image_name>

Ví dụ, khi bạn chạy container từ image nginx, container sẽ tự động bị xoá sau khi nó kết thúc:

docker run --rm nginx

Xoá tất cả các container đã dừng

Nếu bạn có nhiều container đã dừng và muốn xoá tất cả cùng một lúc, bạn có thể sử dụng lệnh sau để liệt kê tất cả các container đã dừng và xoá chúng:

docker container prune

Lệnh này sẽ yêu cầu xác nhận và sau đó xoá tất cả các container đã dừng trên hệ thống. Điều này rất tiện lợi khi bạn không muốn xóa từng container thủ công.

Xoá tất cả container bất kể trạng thái

Trong một số trường hợp, bạn muốn xoá tất cả các container trên hệ thống, bao gồm cả container đang chạy và container đã dừng. Để làm điều này, bạn cần dừng tất cả các container trước, sau đó xoá chúng.

Bước 1: Dừng tất cả container đang chạy

docker stop $(docker ps -q)

Lệnh này sẽ dừng tất cả container đang chạy.

Bước 2: Xoá tất cả container

docker rm $(docker ps -a -q)

Lệnh này sẽ xoá tất cả container, kể cả những container đã dừng. Ở đây, docker ps -a -q trả về danh sách ID của tất cả container, và docker rm sẽ xoá tất cả chúng.

Xoá container kèm với volume

Khi bạn chạy container và tạo volume kèm theo, nếu bạn chỉ xoá container mà không xoá volume, dữ liệu vẫn còn giữ lại trên hệ thống. Để xoá container và các volume liên quan, bạn cần sử dụng cờ -v:

docker rm -v <container_id_or_name>

Ví dụ:

docker rm -v my_container

Lệnh này sẽ xoá cả container lẫn các volume được gắn kèm với container đó.

Xoá container đang chạy bằng lệnh docker rm -f

Trong một số tình huống, bạn muốn xoá ngay một container đang chạy mà không cần dừng container trước. Bạn có thể sử dụng cờ -f (force) để buộc Docker dừng container và xoá nó ngay lập tức:

docker rm -f <container_id_or_name>

Ví dụ:

docker rm -f my_running_container

Lệnh này sẽ buộc container dừng ngay lập tức và xoá nó.

Kết luận

Docker cung cấp nhiều cách để xoá container tuỳ thuộc vào trạng thái và mục đích của bạn. Bạn có thể xoá container đã dừng bằng lệnh docker rm, xoá container đang chạy bằng cách dừng trước hoặc sử dụng lệnh docker rm -f để ép buộc xoá. Ngoài ra, bạn có thể sử dụng lệnh docker container prune để xoá tất cả các container đã dừng hoặc tự động xoá container khi chạy với cờ --rm. Hiểu và sử dụng đúng các lệnh này sẽ giúp bạn quản lý hệ thống Docker một cách hiệu quả hơn.