5. Docker 이미지 생성 (컨테이너 현재 상태 저장)

반응형

5. Docker 이미지 생성 (컨테이너 현재 상태 저장)

 

php 컨테이너의 경우 라이브러리 등을 추가 설치하고 docker compose down 및 up -d 명령을 사용하여 컨테이너를 재가동 하면

컨테이너에 설치한 라이브러리 파일이 초기화 되어져 다시 라이브러리를 설치하고 php 컨테이너를 재시작 해주어야 합니다.

이런 번거로움을 줄이기 위해서 라이브러리 설치 후 아래와 같이 컨테이너의 마지막 상태를 이미지로 저장할 수 있습니다.

 

실행중인 php 컨테이너를 중지합니다.

# docker compose stop php

중지한 php 컨테이너의 ID 를 확인 합니다.

# docker ps -a |grep php |awk {'print $1'}
891757604a66

중지한 컨테이너 ID 값을 이용하여 새로운 이미지를 만듭니다.

# docker commit 891757604a66 php:8.2.0-fpm_update1
sha256:1e7354a1a3030c6cf7e842f200bb3c9319e99fc700f68f8b363410b5a8e48c64

 

생성된 이미지 리스트를 확인합니다.

# docker images
REPOSITORY   TAG                 IMAGE ID       CREATED          SIZE
php          8.2.0-fpm_update1   1e7354a1a303   11 minutes ago   450MB
php          8.2.0-fpm           51dbab2b7efc   13 days ago      450MB
mysql        8.0.31              7484689f290f   2 weeks ago      538MB
httpd        2.4.54              157dcdf23d6c   2 weeks ago      145MB


다음 php 컨테이너를 생성할때 새로운 이미지 기반으로 생성하도록 합니다.

# vi docker-compose.yml

...
    php:
        image: php:8.2.0-fpm_update1
...


이제 php 컨테이너를 삭제 해도 이미지 기반으로 생성 및 구동할때, 이미 이전에 설치한 라이브러리가 있는것을 확인 할 수 있습니다.

 

반응형

댓글()