도커는 컨테이너를 통해 격리된 환경을 만들어 같은 컨테이너를 이용하는 사람들에게 동일한 실행 환경을 제공해줄 수 있다. 이 컨테이너의 설정 데이터를 담고 있는 것이 이미지인데, 이것을 git을 통해 소스 코드를 관리하는 것처럼 이미지를 업데이트하고 커밋하여 히스토리(docker에서는 layer라고 표현한다)를 관리할 수 있다.
이미지를 docker 커맨드를 통해 직접 만들 수도 있고, Dockerfile이라는 스크립트를 만들어서 자동화할 수도 있다. Dockerfile은 문법이 다양하므로 여기서는 간단히 짚고 넘어가본다.
컨테이너에 변경사항을 포함한 이미지를 새로 만들 수 있다. option 설정을 통해 Dockerfile에 instruction을 작성해줄 수도 있다.
docker container commit [OPTIONS] CONTAINER [REPOSITORY{:TAG]]
Dockerfile은 쉘 스크립트처럼 Docker 환경에서 이미지를 빌드할 수 있게 하는 스크립트이다. 컨텍스트 루트에 Dockerfile을 만들고 스크립트를 채워주면 된다.
예시로 사용하고 있는 pacman 리포지토리의 루트 경로에 Dockerfile을 다음과 같이 작성한다.
FROM pacman-2.0
WORKDIR /usr/local/apache2
COPY ./ /usr/local/apache2/htdocs/