docker image commit 방법
docker를 사용하다 보면 docker container에 특정 프로그램을 설치 한 후 다시 image로 만들고 container를 실행해야 하는 경우가 생긴다.
docker container에 특정 프로그램을 설치하고 그대로 사용해도 문제는 없지만 혹여나 설치한 프로그램이 문제가 되어 docker container를 다시 생성해야 할 경우 이전 시점의 docker image가 없다면 복구하기가 어려워 보인다.
docker image를 중간중간 저장해 두어야 특정 시점으로 빠른 복구가 가능하다.
이번 포스팅은 실행중인 docker container를 docker image로 commit하고 commit 된 새로운 image를 container로 실행시키는 방법이다.
현재 docker image와 docker container 현황을 먼저 살펴보자.
먼저 docker image 목록이다.
현재 centos7_image라는 이미지가 1개 있다.
다음으로는 container 목록이다.
centos7.v1 이라는 실행중인 container가 있다.
centos7.v1 docker container에 접속해서 oracle12c client를 설치했다고 가정하자.
설치 과정 생략 !!
oracle12c client를 설치 한 후 container를 image로 commit 한다.
명령어는 다음과 같다.
docker commit -m "메시지" 컨테이너명 이미지명:태그
다른 여러 옵션이 많지만 여기선 생략하고 -m 옵션만 사용했다.
-m 옵션은 commit시 어떤 내용이 변경되었는지 간단하게 기록할 때 사용한다.
컨테이너명, 이미지명은 각각 아이디로 대체해도 무관하다.
본 포스팅에서는 각각의 명칭을 사용했다.
commit이 완료되면 다시 docker images 명령어를 활용하여 image 목록을 조회해 본다.
TAG가 0.0.2인 centos7_image 이미지가 하나 더 생성된 것을 확인할 수 있다.
docker stop 명령어를 활용해서 기존에 실행되고 있던 centos7.v1 container를 정지한다.
새로 생성한 docker image를 docker run 명령어로 실행한다.
docker container 명은 centos7.v2로 image tag와 숫자를 맞춰 혼돈을 줄여준다.
docker container 목록을 확인해 보면 방금 생성한 container가 활성화 된것을 확인할 수 있다.
이로써 사용중이던 docker container 를 commit 명령어로 새로운 image로 생성하고 생성된 image로 새로운 container를 만들어 보았다.