도커 이미지는 컨테이너 실행에 필요한 파일과 설정값이 저장되어 있는데 이 상태값이 변하지 않는 Immutable한 파일이다.
컨테이너는 도커 이미지를 사용하여 실행시킨 환경인데 Mutable 하다.
컨테이너에서 변경된 내용이 Immutable한 이미지에 반영되지 않기 때문에 작업을 따로 해줘야 한다.

  • 레이어 저장방식 - 도커 이미지는 레이어방식이기에 변경된 내용을 기존 내용에 추가하여 구성할 수 있다.
  1. 이미지로 컨테이너 실행
    $ docker run -it ubuntu
    
  2. 변경 (git설치)
    $ apt install -y git
    
  3. 변경된 컨테이너로 새로운 이미지 생성
    $ docker commit 149dvc90b2o4 ubuntu:git
    
  4. 새로운 이미지로 컨테이너 실행
    $ docker run -it ubuntu:git
    
  5. 새로운 이미지를 도커허브 push
    $ docker tag ubuntu:git europani/ubuntu:git
    $ docker push europani/ubuntu:git