도커는 컨테이너를 통해 격리된 환경을 만들어 같은 컨테이너를 이용하는 사람들에게 동일한 실행 환경을 제공해줄 수 있다. 이 컨테이너의 설정 데이터를 담고 있는 것이 이미지인데, 이것을 git을 통해 소스 코드를 관리하는 것처럼 이미지를 업데이트하고 커밋하여 히스토리(docker에서는 layer라고 표현한다)를 관리할 수 있다.

이미지를 docker 커맨드를 통해 직접 만들 수도 있고, Dockerfile이라는 스크립트를 만들어서 자동화할 수도 있다. Dockerfile은 문법이 다양하므로 여기서는 간단히 짚고 넘어가본다.

커맨드를 통한 변경사항 저장

컨테이너에 변경사항을 포함한 이미지를 새로 만들 수 있다. option 설정을 통해 Dockerfile에 instruction을 작성해줄 수도 있다.

docker container commit [OPTIONS] CONTAINER [REPOSITORY{:TAG]]

Dockerfile을 통한 이미지 빌드

Dockerfile은 쉘 스크립트처럼 Docker 환경에서 이미지를 빌드할 수 있게 하는 스크립트이다. 컨텍스트 루트에 Dockerfile을 만들고 스크립트를 채워주면 된다.

예시로 사용하고 있는 pacman 리포지토리의 루트 경로에 Dockerfile을 다음과 같이 작성한다.

FROM pacman-2.0
WORKDIR /usr/local/apache2
COPY ./ /usr/local/apache2/htdocs/