머리말:
Docker를 자주 사용하는 친구들은 docker가 리소스를 매우 빠르게 점유한다는 것을 알고 있습니다. 가장 확실하고 가장 쉽게 감지할 수 있는 것은 디스크 공간 점유입니다. 그렇다면 Docker가 차지하는 시스템 리소스를 어떻게 정리합니까?
(학습 영상 공유: 프로그래밍 입문)
방법은 다음과 같습니다.
docker가 차지하는 리소스 확인
리소스를 정리하기 전에 docker가 어떤 시스템 리소스를 차지하고 있는지 알아내야 합니다. 이를 위해서는 다양한 명령의 조합이 필요합니다.
docker 컨테이너 ls: 기본적으로 실행 중인 컨테이너만 나열됩니다. -a 옵션은 중지된 컨테이너를 포함하여 모든 컨테이너를 나열합니다.
docker image ls: 이미지 정보 나열 -a 옵션은 중간 이미지(다른 이미지가 의존하는 레이어)를 나열합니다.
docker Volume ls: 데이터 볼륨을 나열합니다.
docker network ls: 네트워크를 나열합니다.
docker info: 컨테이너 수, 이미지 수 등 시스템 수준 정보를 표시합니다.
이러한 명령어를 통해 docker가 사용하는 리소스를 확인한 후, docker가 차지하고 있는 일부 리소스를 정리하기로 결정하셨다고 생각합니다! 사용되지 않는 리소스부터 시작해 보겠습니다.
사용하지 않는 리소스만 삭제하세요.
Docker는 빌드 프로세스 중에 중지된 컨테이너, 매달린 이미지, 컨테이너에서 참조하지 않는 네트워크 및 캐시를 삭제할 수 있는 편리한 docker 시스템 정리 명령을 제공합니다.
$ docker system prune
안전상의 이유로 이 명령은 기본적으로 어떤 컨테이너에서도 참조되지 않는 데이터 볼륨은 삭제되지 않습니다. 이러한 데이터 볼륨을 동시에 삭제해야 하는 경우 --volumns 매개변수를 명시적으로 지정해야 합니다. 예를 들어 다음 명령을 실행할 수 있습니다.
$ docker system prune --all --force --volumes
이번에는 데이터 볼륨이 삭제될 뿐만 아니라 확인 프로세스도 진행되지 않습니다! --all 매개변수를 사용하면 매달려 있는 이미지뿐만 아니라 참조되지 않은 모든 이미지가 삭제됩니다.
여기서는 매달린 이미지가 무엇인지 설명할 필요가 있습니다. 사실 어떤 이미지에서도 참조되지 않는 이미지로 간단히 이해하면 됩니다. 예를 들어, 이미지를 다시 빌드한 후에는 더 이상 참조되지 않는 이전에 빌드된 이미지 레이어가 매달린 이미지가 됩니다.
로컬 이미지가 업데이트되면 그림의 빨간색 상자와 유사한 항목이 <없음> 거울. 즉, 이전 이미지는 더 이상 참조되지 않으며 매달린 이미지가 됩니다. -a 매개변수를 사용하면 저장소와 태그 열이 모두
이러한 미러를 중간 미러라고 합니다(즉, 다른 이미지가 의존하는 레이어).
다른 하위 명령으로 정리를 실행하여 특정 유형의 리소스를 삭제할 수도 있습니다.
docker container prune # 删除所有退出状态的容器 docker volume prune # 删除未被使用的数据卷 docker image prune # 删除 dangling 或所有未被使用的镜像
docker를 설치 중에 상태로 되돌립니다.
여기서 "설치 중 상태"는 Docker 관련 구성이 아닌 리소스 점유를 나타냅니다. . 이는 비교적 일반적인 사용 사례이기도 합니다. 예를 들어 작성자는 버그 조사를 위해 특정 날짜에 프로덕션 환경을 깨끗한 Docker 환경에서 자동으로 복원해야 합니다(프로덕션 환경의 백업 데이터 사용). 어떻게 해야 하는지 살펴볼까요?
앞서 소개한 docker system prune --all --force --volumns 명령을 기억하세요. 이 명령을 실행하기 전에 시스템의 모든 컨테이너가 중지된 경우 이 명령은 모든 리소스를 제거합니다! 자, 이제 시스템의 모든 컨테이너를 중지하는 방법을 알아 보겠습니다.
docker 컨테이너 중지 명령은 하나 이상의 컨테이너를 중지할 수 있습니다. 시스템에서 실행 중인 모든 컨테이너만 나열하면 됩니다. docker는 중지된 컨테이너를 다시 중지하는 것을 신경 쓰지 않으므로 간단하고 무례하게 모든 컨테이너(중지된 컨테이너 포함)를 직접 나열해 보겠습니다.
$ docker container ls -a -q
-a는 모든 컨테이너를 표시하고, -q는 숫자 컨테이너 ID만 표시합니다.
그런 다음 이 명령 실행 결과를 docker 컨테이너 중지 명령의 매개 변수로 사용합니다.
$ docker container stop $(docker container ls -a -q)
docker 환경을 복원하는 전체 명령은 다음과 같습니다.
$ docker container stop $(docker container ls -a -q) && docker system prune --all --force --volumns
이전 prune 명령과 유사하며, 특정 유형의 리소스:
컨테이너 삭제 :docker 컨테이너 rm $(docker 컨테이너 ls -a -q)
이미지 삭제: docker image rm $(docker image ls -a -q)
데이터 볼륨 삭제: docker 볼륨 rm $(docker 볼륨 ls -q)
네트워크 삭제 : docker network rm $(docker network ls -q)
쉘 별칭 만들기
위 명령은 작업을 완료할 수 있지만 매우 번거롭습니다. 쉘을 통해 이러한 명령의 실행을 단순화할 수 있습니다. 별칭 함수.
alias docker-clean-unused='docker system prune --all --force --volumes'alias docker-clean-all='docker stop $(docker container ls -a -q) && docker system prune --all --force --volumes'
把上面的命令写入到用户的 ~/.bashrc 文件中就可以了!
执行一次清理任务:
总结
经常清理系统资源不仅能够让系统运行的更流畅,也利于我们把精力集中在相关的重点资源上面。所以建议大家能够使用相关的资源清理命令,让 docker 保持清爽和高效。
相关推荐:docker入门教程
위 내용은 Docker가 차지하는 리소스를 정리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!