컨테이너를 새로운 이미지로 커밋하기
이 단계에서는 실행 중인 컨테이너 내에서 변경 사항을 새로운 Docker 이미지로 커밋하는 방법을 배우게 됩니다. 이는 소프트웨어를 설치하거나 파일을 구성하는 등 수정을 수행한 후 컨테이너의 상태를 저장하려는 경우에 유용합니다.
먼저, 간단한 Ubuntu 컨테이너를 실행해 보겠습니다. ubuntu 이미지를 사용합니다. 컨테이너 내부에서 변경 사항을 만들 것이므로, 의사 TTY(pseudo-TTY) 를 사용하여 대화형으로 실행해야 합니다.
docker run -it ubuntu
이제 Ubuntu 컨테이너의 셸 내부에 있어야 합니다. curl 패키지를 설치하는 것과 같은 간단한 변경을 해보겠습니다.
apt-get update
apt-get install -y curl
설치가 완료되면 exit를 입력하여 컨테이너의 셸을 종료합니다.
exit
이제 컨테이너를 종료했으므로, 변경 사항 (예: curl 설치) 은 해당 특정 컨테이너 인스턴스에 여전히 존재합니다. 이러한 변경 사항을 새 이미지로 저장하려면 컨테이너를 커밋해야 합니다.
먼저, 방금 종료한 컨테이너의 컨테이너 ID 를 찾습니다. docker ps -a 명령을 사용하여 종료된 컨테이너를 포함한 모든 컨테이너를 나열할 수 있습니다.
docker ps -a
ubuntu 이미지에서 생성된 컨테이너를 찾고 해당 CONTAINER ID를 기록해 둡니다.
이제 docker commit 명령을 사용하여 이 컨테이너에서 새 이미지를 생성합니다. 기본 구문은 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]입니다. 컨테이너를 커밋하고 새 이미지에 이름과 태그를 지정합니다. <CONTAINER_ID>를 실제로 찾은 ID 로 바꿉니다.
docker commit < CONTAINER_ID > my-ubuntu-with-curl:v1
이 명령은 v1 태그가 있는 my-ubuntu-with-curl이라는 새 이미지를 생성합니다. 로컬 이미지를 나열하여 새 이미지가 생성되었는지 확인할 수 있습니다.
docker images
이미지 목록에서 my-ubuntu-with-curl을 볼 수 있습니다. 이 새 이미지에는 컨테이너에 설치한 curl 패키지가 포함되어 있습니다.