docker prune with dangling

agnusdei·2024년 7월 25일

한 줄로 사용되지 않는 리소스를 모두 정리하는 명령어:

docker container ls -a -f status=exited -q | xargs -I {} docker container rm {} && \
docker volume ls -f dangling=true -q | xargs -I {} docker volume rm {} && \
docker image ls -f dangling=true -q | xargs -I {} docker image rm {} && \
docker network ls -f dangling=true -q | xargs -I {} docker network rm {} && \
docker system prune -a -f --volumes

설명:

  1. 사용되지 않는 컨테이너 삭제:

    docker container ls -a -f status=exited -q | xargs -I {} docker container rm {}
    • status=exited: 종료된 컨테이너만 필터링하여 삭제.
  2. 사용되지 않는 볼륨 삭제:

    docker volume ls -f dangling=true -q | xargs -I {} docker volume rm {}
    • dangling=true: 사용되지 않는 볼륨만 필터링하여 삭제.
  3. 사용되지 않는 이미지 삭제:

    docker image ls -f dangling=true -q | xargs -I {} docker image rm {}
    • dangling=true: 사용되지 않는 이미지만 필터링하여 삭제.
  4. 사용되지 않는 네트워크 삭제:

    docker network ls -f dangling=true -q | xargs -I {} docker network rm {}
    • dangling=true: 사용되지 않는 네트워크만 필터링하여 삭제.
  5. 모든 불필요한 리소스 정리:

    docker system prune -a -f --volumes
    • 컨테이너, 이미지, 네트워크, 볼륨 등 모든 불필요한 리소스를 정리.

1. 중지된 컨테이너 제거

docker container prune -f

2. 사용되지 않는 이미지 제거

docker image prune -a -f

3. 사용되지 않는 네트워크 제거

docker network prune -f

4. 사용되지 않는 볼륨 제거

docker volume prune -f

5. 사용되지 않는 볼륨 목록 확인

sudo docker volume ls -f dangling=true

6. 모든 리소스 정리 (컨테이너, 이미지, 네트워크, 볼륨)

docker system prune -a -f

7. 볼륨 포함 모든 리소스 정리

docker system prune -a -f --volumes

8. 사용되지 않는 볼륨 삭제 후, 시스템 정리

  1. 사용되지 않는 볼륨 확인:

    sudo docker volume ls -f dangling=true
  2. 사용되지 않는 볼륨 삭제:

    sudo docker volume prune -f
  3. 모든 리소스 정리:

    docker system prune -a -f --volumes

9. 특정 이미지 삭제

특정 이미지를 삭제하려면 이미지 ID를 사용합니다. 이미지 ID는 docker image ls 명령어로 확인할 수 있습니다.

docker image rm <이미지_ID>

예시:

docker image rm abc123

10. 특정 컨테이너 삭제

특정 컨테이너를 삭제하려면 컨테이너 ID를 사용합니다. 컨테이너 ID는 docker container ls -a 명령어로 확인할 수 있습니다.

docker container rm <컨테이너_ID>

예시:

docker container rm d34db33f

11. 특정 볼륨 삭제

특정 볼륨을 삭제하려면 볼륨 이름을 사용합니다. 볼륨 이름은 docker volume ls 명령어로 확인할 수 있습니다.

docker volume rm <볼륨_이름>

예시:

docker volume rm my_volume

12. 특정 네트워크 삭제

특정 네트워크를 삭제하려면 네트워크 이름을 사용합니다. 네트워크 이름은 docker network ls 명령어로 확인할 수 있습니다.

docker network rm <네트워크_이름>

예시:

docker network rm my_network

13. 중지된 특정 컨테이너 삭제

중지된 상태의 특정 컨테이너를 삭제하려면, status=exited 필터를 사용하여 특정 컨테이너만 삭제할 수 있습니다.

docker container ls -a -f status=exited -f "name=<컨테이너_이름>" -q | xargs -I {} docker container rm {}

예시:

docker container ls -a -f status=exited -f "name=my_container" -q | xargs -I {} docker container rm {}

14. 사용되지 않는 특정 이미지 삭제

사용되지 않는 특정 이미지를 삭제하려면 이미지 ID를 필터로 사용합니다.

docker image ls -f dangling=true -f "reference=<이미지_이름>" -q | xargs -I {} docker image rm {}

예시:

docker image ls -f dangling=true -f "reference=my_image" -q | xargs -I {} docker image rm {}

profile
DevSecOps Pentest🚩

0개의 댓글