2016-10-24 5 views
0

저는 여러 레이어에서 만든 도커 이미지와 debian : jessie 기본 이미지를 작게 만들고 있습니다. 내가 패키지의 무리를 apt-get remove하고 파일 시스템에서 파일을 삭제보다 클린업 계층을 추가했습니다. 결과 이미지를 실행하고 그 안에 du -h을 만들면 약 1.3GB이라는 것을 알 수 있습니다. 그러나 이미지 크기를 docker images으로 보면 2.2GB보다 크며 클린업 레이어 앞의 이미지 크기입니다. 최종 이미지가 왜 작아지지 않는 이유는 무엇입니까?도커 이미지가 파일 시스템보다 큽니다.

+1

청소 방법은 무엇입니까? 청소는 청소하고 싶은 것과 동일한 명령에 있어야합니다 (예 : 뭔가를 다운로드하기 위해 말풍선을 설치하는 경우, 같은 달리기에서 그것을 다운로드 한 다음 말림을 제거해야합니다). 그렇지 않으면 가벼운 달리기 용기를 갖지만 이미지는 청소되지 않습니다. (레이어 규칙) –

답변

1

클린업 계층을 사용할 수 없습니다. Union File System은 이와 같이 작동하지 않습니다. 계층 1에 파일이 있고 계층 2에서 파일을 삭제하면 컨테이너를 실행할 때 Docker가 수행하는 모든 작업이 삭제 된 파일을 숨기는 것입니다. 파일이 이미지 레이어에 저장되면 해당 레이어에서 제거 할 수 없습니다.

Docker squash 도구를 사용하여 최종 이미지 크기를 줄이거 나 Titouan Freville의 설명에 따라 Docker 파일을 다시 작성할 수 있습니다. 모든 APT 명령을 하나의 RUN 문 (업데이트, 설치 제거)으로 수행하십시오. 이렇게하면 이미지 레이어가 저장 될 때 파일이 이미 정리 된 것입니다.

관련 문제