그래서 다음과 같이 PHP 7.2.34 서비스를 실행하는 도커 컨테이너가 있습니다.
docker-compose.yml
version: '3'
services:
#PHP Service
app:
build:
context: .
dockerfile: Dockerfile
image: digitalocean.com/php
container_name: app
...
도커파일
FROM php:7.2-fpm
...
Nginx를 다시 시작하는 대신 다음과 같이 컨테이너를 다시 시작했습니다.
docker stop app db webserver
docker rm app db webserver
docker-compose up -d
PHP 7.4+ 또는 8로 업그레이드하고 싶습니다. 간단히 교체해 보았 FROM php:7.2-fpm
으나 PHP 버전에 변화가 없다고 보고되었습니다 FROM php:7.4-fpm
. phpinfo()
예: image: digitalocean.com/php
업그레이드할 필요가 있나요?
답변1
이 명령은 이미지를 업데이트하고 컨테이너를 강제 중지한 후 다시 생성합니다.
docker-compose up -d --force-recreate --build
확인 목적으로 docker exec -it app php -v
PHP 버전 정보가 반환됩니다.
# The new image name when running `docker-compose up/build`
image: digitalocean.com/php
설명하다:
이 명령은 docker-compose up
존재하지 않는 이미지를 빌드합니다.
새 이미지를 강제로 생성하려면 --build
플래그나 작업을 추가한 docker-compose build
다음docker-compose up
Compose를 강제로 중지하고 모든 컨테이너를 다시 생성하려면 이
--force-recreate
플래그를 사용하세요.
--build
컨테이너를 시작하기 전에 이미지를 빌드하세요.
답변2
도커 이미지와 도커 컨테이너에는 차이가 있습니다. 및 을
참조하십시오 .docker image ls
docker container ls
이미지를 다시 빌드하고 실행할 컨테이너를 만듭니다.
docker-compose up -d --build
답변3
어쨌든 애플리케이션을 중지하려면 다음을 사용하여 호스트에서 모든 이미지를 삭제할 수 있습니다.
docker-compose down --rmi all
그런 다음 애플리케이션을 시작하고 @Shmuel이 제안한 대로 컨테이너를 다시 만듭니다.
docker-compose up -d --force-recreate --build