php 컨테이너의 경우 라이브러리 등을 추가 설치하고 docker compose down 및 up -d 명령을 사용하여 컨테이너를 재가동 하면 컨테이너에 설치한 라이브러리 파일이 초기화 되어져 다시 라이브러리를 설치하고 php 컨테이너를 재시작 해주어야 합니다.
이런 번거로움을 줄이기 위해서 라이브러리 설치 후 아래와 같이 컨테이너의 마지막 상태를 이미지로 저장할 수 있습니다.
실행중인 php 컨테이너를 중지합니다.
docker compose stop php
중지한 php 컨테이너의 ID 를 확인 합니다.
docker ps -a |grep php |awk {'print $1'}
cb2ed69f9009
중지한 컨테이너 ID 값을 이용하여 새로운 이미지를 만듭니다.
docker commit cb2ed69f9009 php:8.2.0-fpm_update1
===============================================================================
sha256:1e7354a1a3030c6cf7e842f200bb3c9319e99fc700f68f8b363410b5a8e48c64
===============================================================================
생성된 이미지 리스트를 확인합니다.
docker images
===============================================================================
REPOSITORY TAG IMAGE ID CREATED SIZE
php 8.2.0-fpm_update1 f58e1eff6e1a 19 seconds ago 496MB
httpd 2.4.54 463980270363 7 weeks ago 145MB
php 8.2.0-fpm 8ee3a55f199a 2 months ago 450MB
mysql 8.0.31 7484689f290f 2 months ago 538MB
===============================================================================
다음 php 컨테이너를 생성할때 새로운 이미지 기반으로 생성하도록 합니다.
vi docker-compose.yml
===============================================================================
php:
image: php:8.2.0-fpm_update1
===============================================================================
이제 php 컨테이너를 삭제 해도 이미지 기반으로 생성 및 구동할때, 이미 이전에 설치한 라이브러리가 있는것을 확인 할 수 있습니다.
'DEV > Docker-Debian' 카테고리의 다른 글
6. Docker PHPMyAdmin 설치 (0) | 2023.03.02 |
---|---|
4. Docker PHP 환경 설정하기 (php.ini) (0) | 2023.03.02 |
3. Docker MySQL 환경 설정 및 DB, 사용자 계정 생성 (MySQL 8.0) (0) | 2023.03.02 |
2. Docker httpd 환경 설정하기 (PHP 연동, Virtualhost 및 무료인증서 SSL 적용) (0) | 2023.03.01 |
1. Ubuntu 22.04 에서 Docker 구성 (APM 기본 설치) (0) | 2023.03.01 |
댓글