찾다

 >  Q&A  >  본문

Docker 실행 컨테이너가 디스크 공간을 해제하지 않습니다.

안녕하세요 여러분, docker가 디스크를 어떻게 관리하는지 물어보고 싶습니다. 컨테이너에 Jenkins 애플리케이션이 있는데, 잠시 실행한 후 컨테이너의 용량이 매우 커졌습니다. 그런 다음 컨테이너의 일부 대용량 파일을 삭제했는데, df -h가 컨테이너의 가상 파티션인지 아니면 호스트의 디스크인지 확인했습니다. 출시되었는데 디스크 사용량이 여전히 42%(컨테이너), 50%(호스트)인 이유는 무엇인가요? 어떻게 해결하나요?

PHP中文网PHP中文网2814일 전1227

모든 응답(1)나는 대답할 것이다

  • 大家讲道理

    大家讲道理2017-04-24 09:14:58

    Docker이미지컨테이너에 대한 이해가 필요합니다. 물론 이는 파일 시스템의 관점에서 이해된다.

    Docker 이미지는 읽기 전용 파일입니다. 강조하자면 읽기 전용이므로 이미지에 있는 파일을 실제로 삭제할 수는 없습니다. 삭제할 때 컨테이너가 파일을 볼 수 없도록 표시만 하면 됩니다. 따라서 이 파일은 여전히 ​​이미지에 존재하며 디스크 공간을 차지합니다.

    Docker 컨테이너는 이미지 기반의 읽기/쓰기 레이어로, 읽고 쓸 수 있습니다. 파일을 읽고 쓸 때 이미지에서 컨테이너의 읽기-쓰기 계층으로 파일이 복사된 다음 원본 파일이 이미지에 남아 있는 동안 복사된 파일을 읽고 씁니다. 또한 이 컨테이너의 읽기-쓰기 레이어도 디스크 공간을 차지합니다.

    따라서 이미지와 컨테이너를 삭제해야만 디스크 공간을 확보할 수 있습니다.

    이미지 삭제

    으아아아

    컨테이너 삭제

    으아아아

    모든 미러 삭제

    으아아아

    모든 컨테이너 삭제

    으아아아

    또한 컨테이너의 데이터 볼륨도 디스크 공간을 차지합니다. 다음 명령을 통해 만료된 볼륨을 삭제할 수 있습니다.

    으아아아

    물론 가장 폭력적인 방법은 Docker가 이미지, 컨테이너, 데이터 볼륨을 저장하는 디렉터리(/var/lib/docker)를 삭제하는 것입니다.

    주의해서 사용하세요! ! ! :

    으아아아

    회신하다
    0
  • 취소회신하다