2014-06-23 2 views
3

최근 jboss를 실행 한 centos 기본 이미지에서 도커 컨테이너를 만들었습니다. 원래 컨테이너를 부피가 커지게 만든 jdk (약 850M)를 설치했습니다. 나중에 jdk를 제거하고 jre를 설치했습니다. 컨테이너 내부에서커밋 후 도커 이미지 크기가 컨테이너 크기와 일치하지 않습니다.

du -xsh/

은 440M 만 표시합니다. 그러나 이미지 변경 사항을 커밋 한 후에도 여전히 711M이 표시됩니다. 이미지의 크기가 컨테이너의 du과 일치하지 않거나 가까워 야합니까? 또는 커밋하는 동안 도커는 이전 SCM (SCM)에 계속 추가합니까?

감사합니다.

답변

0

내 질문에 답합니다. docker는 이미지에 커밋 할 때마다 기본 이미지에 레이어를 추가하는 것처럼 보입니다. 그러나 컨테이너를 기본으로 만드는 것은 이미지를 부 풀릴 기존 이미지 위에 새 레이어를 추가하는 것일뿐입니다. 이 방법의 문제점은 기본 이미지를 수정하고 커밋 할 때 원하지 않는 레이어를 제작에 가져 오는 것입니다. 레이어를 병합하는 공식 방법이 없습니다. 그러나 this link에는 몇 가지 해결 방법이있는 것으로 보입니다. 그러나, 나는베이스에서 모든 것을 재현하고 한 번만 커밋하여 이미지 크기를 컨테이너 크기에 매우 가깝게 만들었습니다.

1

Dockerfiles를 사용하여 이미지를 빌드하는 경우 커밋 방법이 아닌 경우이 문제를 쉽게 해결할 수 있습니다. Dockerfiles를 사용하는 경우 JDK를 추가 한 RUN 명령을 제거하고 다시 빌드하면됩니다. 그러면 이전 레이어가 제거됩니다.

관련 문제