Docker 환경을 정리하는 방법

deepu.tech에 원래 게시되었습니다.

Docker 설정 정리



PC 또는 Mac에서 Docker를 사용하는 경우 시간이 지남에 따라 많은 정크가 축적되며 그 중 대부분은 매달린 이미지와 고아 볼륨입니다. 컴퓨터에서 많은 공간을 차지할 수 있습니다.

가끔씩 이것을 정리해야 합니다. 고맙게도 여기에 도움이 되는 도커 명령이 있으며 bash 마법과 함께 3단계로 쉽게 수행할 수 있습니다.

오래된 용기 정리



Docker에는 컨테이너를 제거하는 docker rm 명령이 있습니다. 이 명령을 일부 docker ps 필터와 함께 사용하여 현재 사용되지 않는 모든 컨테이너를 제거할 수 있습니다. 이것은 실행 중인 어떤 것에도 영향을 미치지 않으므로 완벽하게 문제가 없으며 제거된 이미지를 다시 사용하려는 경우 도커가 이를 다운로드합니다.

따라서 아래 명령이 트릭을 수행해야 합니다.

docker rm -v $(docker ps -a -q -f status=exited);

docker ps -a -q -f status=exited 종료 상태에 있는 컨테이너 ID 목록을 제공하고 docker rm -v 연관된 볼륨과 함께 해당 ID를 제거합니다. docker rm --helpdocker ps --help를 실행하여 플래그가 의미하는 바를 확인하십시오.

참고: 이 볼륨에서 원하는 것이 있으면 이 작업을 수행하기 전에 백업해야 합니다.

매달린 볼륨 정리



댕글링 볼륨은 존재하며 더 이상 컨테이너에 연결되지 않는 볼륨입니다. 볼륨에 대해서도 유사한rm 명령이 있습니다. 이것을 필터와 함께 docker volume ls 명령과 함께 사용하여 매달린 볼륨을 제거할 수 있습니다. 아래는 그에 대한 명령입니다.

docker volume rm $(docker volume ls -q -f dangling=true);

docker volume ls -q -f dangling=true는 어떤 컨테이너에도 연결되지 않은 볼륨 이름을 반환하고 docker volume rm 제거합니다. docker volume rm --helpdocker volume ls --help를 실행하여 플래그가 의미하는 바를 확인하십시오.

참고: 이 볼륨에서 원하는 것이 있으면 이 작업을 수행하기 전에 백업해야 합니다.

매달린 이미지 정리



마지막으로 매달린 이미지를 정리해야 합니다. Docker 이미지는 여러 레이어로 구성되며 댕글링 이미지는 태그가 지정된 이미지와 관계가 없는 레이어입니다. 더 이상 어떤 용도로도 사용되지 않고 디스크 공간을 사용하므로 안전하게 제거할 수 있습니다. Docker에서 docker image prune -a 명령을 사용하여 사용하지 않는 이미지를 제거할 수 있지만 어떤 이유로 이 명령이 작동하지 않아 아래와 같이 image rm 명령을 사용해야 했습니다.

docker image rm $(docker images -q -f dangling=true);

docker images -q -f dangling=true 태그가 지정된 이미지와 관련이 없는 이미지 이름을 반환하고 docker image rm 제거합니다. docker image rm --helpdocker images --help를 실행하여 플래그가 의미하는 바를 확인하십시오.

모든 것을 청소하십시오



업데이트: docker가 모든 것을 정리하는 기본 명령을 제공하는 것 같습니다.

docker system prune --volumes


이것을 실행하여 아래 명령과 조금 더 같은 결과를 얻을 수 있습니다. 지적해주셔서 감사합니다. 아래는 교육용으로 남겨두겠습니다.

이제 이 명령을 편리한 bash 기능으로 추가하여 항상 하는 것처럼 단일 명령으로 이 정리를 수행할 수 있습니다. 많은 디스크 공간을 확보하고 docker-compose에 이상한 캐시 문제가 있을 때 도움이 됩니다.

아래 기능을 ~/.bashrc 또는 ~/.zshrc에 추가하고 터미널을 다시 로드하거나 . ~/.zshrc 또는 . ~/.bashrc를 실행하여 파일을 소싱합니다.

function dpurgeall(){
  docker rm -v $(docker ps -a -q -f status=exited);
  docker volume rm $(docker volume ls -qf dangling=true);
  docker image rm $(docker images -qf dangling=true);
}


이제 간단히 dpurgeall 실행하면 Docker 환경이 정리됩니다. 정리할 것이 없으면 명령만 존재하므로 걱정할 필요가 없습니다.


이 글이 마음에 드셨다면 좋아요나 댓글을 남겨주세요.

및 에서 나를 팔로우할 수 있습니다.

표지 이미지 크레디트: chuttersnapUnsplash 사진

좋은 웹페이지 즐겨찾기