
이렇게 추가된 부분만 덧붙여 업그레이드 됨

즉, Docker는 이미지를 통째로 생성하지 않고, 바뀐 부분만 생성한 뒤 부모 이미지를 계속 참조하는 방식으로 동작한다. Docker에서는 이를 레이어 라고 한다.
Docker 이미지는 파일이기 때문에 저장소에 올린 뒤 다른 곳에서 받을 수 있습니다. 그리고 저장소에 올릴 때는 자식 이미지와 부모 이미지를 함께 올립니다. 받을 때도 마찬가지로 부모 이미지를 함께 받습니다. 이후에는 내용이 바뀐 이미지만 주고받습니다.
Docker는 특정 실행 파일 또는 스크립트를 위한 실행 환경이라 보면 됩니다. 리눅스/유닉스 계열은 파일 실행에 필요한 모든 구성요소가 잘게 쪼개어져 있습니다. 시스템 구조가 단순해지고 명확해지는 장점이 있지만 의존성 관계를 해결하기가 어려워지는 단점이 있습니다. 그래서 리눅스 배포판 별로 미리 컴파일된 패키지(rpm, deb 등)라는 시스템이 나왔습니다. 하지만 서버를 실행할 때마다 일일이 소스를 컴파일하거나 패키지를 설치하고, 설정하려면 상당히 귀찮습니다.
서버가 한 두 대라면 큰 어려움이 없겠지만 클라우드 환경에서는 서버를 몇 십, 몇 백개를 생성해야 합니다. 서버 구성을 미리 해놓은 Docker 이미지를 사용하면 실행할 서버가 몇 개가 되든 손쉽게 해결할 수 있습니다