특정 서비스와 함께 docker compose wait 사용
이전 단계에서는 docker compose wait를 사용하여 모든 서비스가 중지될 때까지 대기했습니다. 이 단계에서는 docker compose wait를 사용하여 특정 서비스가 특정 상태에 도달할 때까지 대기하는 방법을 배웁니다.
먼저, docker-compose up -d를 사용하여 서비스를 다시 시작해 보겠습니다. ~/project 디렉토리에 있는지 확인합니다.
cd ~/project
docker-compose up -d
docker-compose ps를 사용하여 두 서비스가 모두 실행 중인지 확인합니다.
docker-compose ps
이제 새 터미널 창 또는 탭을 엽니다. 이 새 터미널을 사용하여 특정 서비스 대기를 시연합니다.
새 터미널 창에서 ~/project 디렉토리로 이동합니다.
cd ~/project
docker compose wait 명령어 뒤에 서비스 이름을 제공하여 대기할 서비스를 지정할 수 있습니다. 예를 들어, web 서비스만 중지될 때까지 대기하려면:
docker compose wait web
이전 단계와 마찬가지로, web 서비스가 현재 실행 중이므로 이 명령어는 블록됩니다.
이제 원래 터미널 창으로 다시 전환합니다. web 서비스만 중지합니다. 이렇게 하려면 컨테이너 이름과 함께 docker stop 명령어를 사용할 수 있습니다. docker ps를 사용하여 컨테이너 이름을 찾을 수 있습니다. 아마도 project-web-1과 같은 형태일 것입니다.
cd ~/project
docker stop project-web-1
project-web-1을 실제 컨테이너 이름으로 바꾸십시오 (다른 경우).
원래 터미널 창에서 출력을 관찰합니다. web 컨테이너가 중지되고 있음을 나타내는 메시지가 표시됩니다.
이제 docker compose wait web을 실행한 새 터미널 창으로 다시 전환합니다. web 서비스가 중지되면 docker compose wait web 명령어가 이를 감지하고 종료됩니다.
새 터미널 창에서 명령 프롬프트가 반환되는 것을 볼 수 있습니다. db 서비스가 여전히 실행 중임에도 불구하고 docker compose wait web 명령어가 종료되었음을 확인하십시오.
db 서비스가 여전히 실행 중인지 확인하려면 원래 터미널로 다시 전환하고 docker-compose ps를 실행합니다.
cd ~/project
docker-compose ps
web 서비스가 더 이상 나열되지 않거나 중지된 상태를 표시하는 반면, db 서비스가 상태 Up으로 나열되어야 합니다.
마지막으로, 나머지 db 서비스를 중지해 보겠습니다.
cd ~/project
docker-compose down
특정 서비스가 중지될 때까지 블록하도록 docker compose wait를 성공적으로 사용했습니다.