overlay2 docker를 정리하는 방법

overlay2 docker를 정리하는 방법

Linux 시스템에서 일부 도커 컨테이너가 실행되고 있는데 /docker/overlay2 폴더의 디스크 크기가 매우 빠르게 커집니다. 이로 인해 새로운 이미지를 푸시할 수 없습니다.

overlay2 내부를 확인해 보니 매우 오래된 레이어가 포함되어 있는 것으로 나타났습니다(2019년 8월).

docker 볼륨을 정리하기 위해 다음 명령을 시도했습니다. ls -qf dangling=true | xargs -r docker 볼륨 rm docker rm -v $(sudo docker ps -a -q -f status=exited) docker 시스템 정리

그러나 회수된 0B

또한 확인함https://stackoverflow.com/questions/46672001/is-it-safe-to-clean-docker-overlay2

https://docs.docker.com/config/pruning/

https://success.docker.com/article/error-message-no-space-left-on-device-in-default-machine

이것을 청소하는 가장 좋은 방법은 무엇입니까?


도커 로그

Starting Oracle Net Listener.

Oracle Database 11g Express Edition 인스턴스를 시작합니다.

DB 시작을 기다리는 중

SQL*Plus: 2020년 7월 14일 화요일 11.2.0.2.0 프로덕션 릴리스 05:04:23

저작권 (c) 1982, 2011, 오라클. 판권 소유.

연결 대상: Oracle Database 11g Express Edition 릴리스 11.2.0.2.0 - 64비트 프로덕션

SQL> Oracle Database 11g Express Edition 릴리스 11.2.0.2.0에서 연결이 끊겼습니다. - 64비트 프로덕션 DB가 시작되었습니다. /opt/ion/platform/daemon/DM_DOCKER / /opt/ion/platform/daemon/DM_DOCKER/mkvd118p1.lx에서 데몬이 시작되었습니다. 포트 13000 bash: 연결: 네트워크에 연결할 수 없습니다. bash: /dev/tcp/localhost/13000: 네트워크에 연결할 수 없습니다. 포트 13000에서 Deamon이 시작되었습니다. / 실행 중: /startup/ansible_container_startup.sh 실행 중: /startup/cups_startup.sh 실행 중: /startup/ samba_startup.sh 실행 중 : /startup/start_check_mk_agent.sh

도커 차이점 데몬의 오류 응답: mkdir /docker/overlay2/f033daa6d065ff85484b54fcd9a7786f839917d180129ea8fed0f627ad776095-init/merged: 장치에 남은 공간이 없습니다.

도커 ps -a

도커 볼륨 ls

도커 이미지

답변1

overlay2가 너무 클 때 대부분의 사람들이 일반적으로 대답하는 방법은 정리를 실행하여 중지된 컨테이너와 태그가 지정되지 않은(최신 태그로 교체된) 이미지를 정리하는 것입니다. 이 작업은 완료되었으며 docker prune더 많은 데이터를 정리하기 위한 해당 명령에 대한 다른 옵션이 있습니다. 일반적으로 이 폴더를 정리하는 방법에 대한 자세한 내용은 "docker/overlay2/를 청소해도 안전합니까?".

폴더가 커지는 것이 문제라면 /var/lib/docker/containersstdout/stderr에 로그가 기록된 것으로 의심됩니다.이를 정리하고 향후 과도한 로그를 방지하는 다양한 방법.

그러나 이 문제의 경우 컨테이너를 시작할 때 overlay2 폴더의 크기가 급격히 증가하면 해당 컨테이너가 해당 컨테이너와 연결된 읽기/쓰기 파일 시스템에 쓸 가능성이 높습니다. 파일을 수정할 때마다 컨테이너 특정 레이어에 대한 쓰기 중 복사가 트리거됩니다. docker container diff특정 컨테이너 ID로 어떤 파일이 생성되거나 수정되는지 진단할 수 있습니다 . 귀하의 상황에서는 드라이브를 가득 채울 정도로 빠르게 진행되어 귀하의 컴퓨터에 이 컨테이너를 디버그하거나 실행할 수 있는 용량이 없을 수 있으므로 더 많은 용량이 있는 컴퓨터에서 이를 디버그해야 할 수도 있습니다.

답변2

쓸모없는 이미지를 제거하는 데 사용할 수 있습니다 docker image prune -a.

관련 정보