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 컨테이너를 삭제 해도 이미지 기반으로 생성 및 구동할때, 이미 이전에 설치한 라이브러리가 있는것을 확인 할 수 있습니다.
'리눅스 > Containers & Kubernetes' 카테고리의 다른 글
1. Ubuntu 22.04 에서 CRI-O, Kubernetes 1.26, Calico 설치하기 (0) | 2022.12.26 |
---|---|
6. Docker PHPMyAdmin 설치 (0) | 2022.12.23 |
4. Docker PHP 환경 설정 및 MySQL 연동, 기타 라이브러리 활성화 (0) | 2022.12.22 |
3. Docker MySQL 환경 설정 및 DB, 사용자 계정 생성 (0) | 2022.12.20 |
2. Docker httpd 환경 설정하기 (PHP 연동, Virtualhost 및 SSL 적용) (0) | 2022.12.20 |