본문 바로가기
AI Journey/클라우드

[Docker] commit을 활용한 커스텀 이미지 생성

by 보눔비스타 2025. 12. 30.

공식 Docker Hub에서 제공하는 bare image(기본 이미지)에 필요한 패키지를 설치하고, 해당 상태를 보존하여 새로운 이미지로 생성하는 과정을 다룬다.

이는 CI/CD 파이프라인의 기초가 되는 작업이기도 하다.

1. 베이스 컨테이너 환경 구성

예: Rocky Linux 8 이미지를 기반으로 컨테이너를 실행하고, git 패키지를 설치

# Rocky Linux 실행 및 bash 진입
docker run -it --name "rocky8-1" rockylinux:8 bin/bash

# 패키지 매니저를 통한 Git 설치 (컨테이너 내부)
[root@9fb87d881e0b /]# yum update && yum -y install git
[root@9fb87d881e0b /]# git --version
git version 2.43.7

 

먼저 베이스가 될 rockylinux:8 이미지를 실행하고, 내부 셸로 진입하여 필요한 변경 사항을 만든다.

여기서는 git 패키지를 설치한다.

2. Docker Commit: 컨테이너의 이미지화

컨테이너 내부에서 git이 설치됨으로써, 초기 이미지와는 다른 데이터 레이어(Layer)가 쌓였다.

이제 컨테이너 밖으로 나와(exit하지 않고 터미널을 하나 더 띄우거나, exit 후 정지된 상태) 현재 상태를 스냅샷으로 저장하여 새로운 이미지를 생성한다.

명령어: docker commit [CONTAINER_NAME] [NEW_IMAGE_NAME]

# rocky8-1 컨테이너를 rocky8-2라는 이름의 이미지로 저장
docker commit rocky8-1 rocky8-2

 

이 과정을 통해 반복적인 설정 작업 없이, 필요한 환경이 구축된 이미지를 재사용할 수 있다.

 

Docker Commit 워크플로우

 

3. 생성된 이미지 검증 (결과 확인)

새로 생성된 rocky8-2 이미지가 정상적으로 만들어졌는지 확인하고, 해당 이미지로 다시 컨테이너를 실행했을 때 아까 설치한 git이 그대로 존재하는지 검증한다.

 

# 이미지 목록 확인
docker images
REPOSITORY    TAG        IMAGE ID       CREATED        SIZE
rocky8-2      latest     274f8d1844bb   7 seconds ago  624MB
rockylinux    8          c79048e50f5f   2 years ago    198MB

# 새 이미지로 컨테이너 실행 및 Git 버전 확인
docker run -it rocky8-2:latest bin/bash
[root@5174515a0ebf /]# git --version
git version 2.43.7

 

git 명령어가 정상 실행되는 것을 볼 수 있다.

이 과정을 통해 매번 패키지를 설치할 필요 없이, 설정이 완료된 환경을 언제든 즉시 실행할 수 있게 되었다.