docker compose unpause 명령으로 서비스 재개하는 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker compose unpause 명령을 사용하여 일시 중지된 서비스를 재개하는 방법을 배우게 됩니다. 먼저 Nginx 이미지를 사용하여 기본적인 웹 서비스를 정의하는 간단한 docker-compose.yml 파일을 생성하는 것으로 시작합니다.

설정 후, docker compose up을 사용하여 서비스를 시작한 다음, docker compose pause를 사용하여 일시 중지합니다. 마지막으로, docker compose unpause를 사용하여 서비스를 재개하고 제대로 실행되고 있는지 확인합니다. 이 실습을 통해 Docker Compose 서비스의 일시 중지 및 재개에 대한 실제 적용을 보여줍니다.

간단한 docker-compose.yml 파일 생성

이 단계에서는 기본적인 docker-compose.yml 파일을 생성합니다. 이 파일은 Docker Compose 의 핵심으로, 애플리케이션에 대한 서비스, 네트워크 및 볼륨을 정의합니다. 시작하기 전에, 이 환경에는 Docker Compose 가 미리 설치되어 있지 않으므로 Docker Compose 를 설치해야 합니다.

먼저, Docker Compose 를 설치해 보겠습니다. 최신 안정 릴리스를 다운로드하여 실행 가능하게 만듭니다.

sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

이제 버전을 확인하여 설치를 확인해 보겠습니다.

docker-compose --version

Docker Compose 가 올바르게 설치되었음을 확인하는 버전 정보가 콘솔에 출력되어야 합니다.

다음으로, 이 랩의 작업 디렉토리인 ~/project 디렉토리로 이동합니다.

cd ~/project

이제 이 디렉토리에 docker-compose.yml이라는 파일을 생성합니다. 이 파일은 nginx 이미지를 사용하여 간단한 서비스를 정의합니다. nano 편집기를 사용하여 파일을 생성하고 편집합니다.

nano docker-compose.yml

nano 편집기 내에서 다음 내용을 붙여넣습니다.

version: "3.8"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

docker-compose.yml 파일을 자세히 살펴보겠습니다.

  • version: '3.8'은 Docker Compose 파일 형식 버전을 지정합니다.
  • services:는 애플리케이션을 구성하는 다양한 서비스를 정의합니다.
  • web:은 서비스의 이름입니다. 서비스의 이름을 원하는 대로 지정할 수 있습니다.
  • image: nginx:latest는 이 서비스에 사용할 Docker 이미지를 지정합니다. 이 경우, 공식 Nginx 이미지의 최신 버전을 사용하고 있습니다. 이 이미지가 로컬에 없을 수 있으므로, Docker Compose 는 서비스를 시작할 때 Docker Hub 에서 자동으로 이미지를 가져옵니다.
  • ports:는 호스트 머신과 컨테이너 간의 포트를 매핑합니다. "80:80"은 호스트의 포트 80 을 컨테이너의 포트 80 에 매핑합니다. 즉, 호스트 머신에서 http://localhost(또는 VM 의 IP 주소) 를 방문하여 컨테이너 내에서 실행되는 Nginx 웹 서버에 액세스할 수 있습니다.

내용을 붙여넣은 후, Ctrl + O를 눌러 파일을 저장한 다음, Enter를 눌러 파일 이름을 확인하고, 마지막으로 Ctrl + X를 눌러 nano 편집기를 종료합니다.

이제 첫 번째 docker-compose.yml 파일을 성공적으로 생성했습니다. 다음 단계에서는 이 파일을 사용하여 Nginx 서비스를 시작합니다.

docker compose up 명령으로 서비스 시작

이 단계에서는 docker-compose up 명령을 사용하여 docker-compose.yml 파일에 정의된 서비스를 시작합니다. 이 명령은 서비스에 대한 컨테이너를 빌드, (다시) 생성, 시작 및 연결합니다.

이전 단계에서 docker-compose.yml 파일을 생성한 ~/project 디렉토리에 있는지 확인하십시오.

cd ~/project

이제 다음 명령을 실행하여 Nginx 서비스를 시작합니다.

docker-compose up -d

명령을 이해해 보겠습니다.

  • docker-compose updocker-compose.yml 파일에 정의된 서비스를 시작합니다.
  • -d는 컨테이너를 분리된 모드 (detached mode) 로 실행합니다. 즉, 컨테이너가 백그라운드에서 실행되며 터미널을 차단하지 않습니다.

이 명령을 처음 실행하면 Docker Compose 는 시스템에 아직 없는 경우 Docker Hub 에서 nginx:latest 이미지를 가져옵니다. 이미지가 가져와지고 컨테이너가 생성 및 시작되는 것을 나타내는 출력을 볼 수 있습니다.

컨테이너가 실행 중인지 확인하려면 docker ps 명령을 사용할 수 있습니다.

docker ps

web 서비스 (또는 디렉토리 및 서비스 이름을 기반으로 하는 유사한 이름) 에 대한 항목이 Up 상태로 표시되어야 합니다. 이는 Nginx 컨테이너가 실행 중임을 나타냅니다.

또한 curl을 사용하여 노출된 포트 80 에 액세스하여 Nginx 웹 서버에 액세스할 수 있는지 확인할 수 있습니다.

curl http://localhost:80

터미널에 기본 Nginx 환영 페이지 HTML 출력이 표시되어야 합니다. 이는 Nginx 서버가 컨테이너 내에서 실행 중이며 매핑된 포트를 통해 호스트 머신에서 액세스할 수 있음을 확인합니다.

docker compose pause 명령으로 서비스 일시 중지

이 단계에서는 docker-compose pause 명령을 사용하여 실행 중인 서비스를 일시 중지하는 방법을 배웁니다. 컨테이너를 일시 중지하면 모든 프로세스가 일시적으로 중단됩니다. 이는 프로세스를 종료하는 컨테이너 중지와는 다릅니다.

docker-compose.yml 파일이 있고 서비스가 실행 중인 ~/project 디렉토리에 있는지 확인하십시오.

cd ~/project

이제 다음 명령을 실행하여 web 서비스를 일시 중지합니다.

docker-compose pause web

web 서비스가 일시 중지되고 있음을 나타내는 출력을 볼 수 있습니다.

컨테이너가 일시 중지되었는지 확인하려면 docker ps 명령을 사용할 수 있습니다.

docker ps

web 서비스 컨테이너의 STATUS 열을 살펴보십시오. 이제 Up ... (Paused)와 같은 상태가 표시되어야 합니다. 이는 컨테이너의 프로세스가 중단되었음을 확인합니다.

컨테이너가 일시 중지된 동안에는 컨테이너 내부의 Nginx 웹 서버가 요청을 적극적으로 처리하지 않습니다. curl을 사용하여 액세스하려는 경우 서버가 응답하지 않으므로 요청이 중단되거나 시간 초과될 가능성이 높습니다.

curl http://localhost:80

이 명령은 컨테이너가 실행 중일 때와 같이 즉시 Nginx 환영 페이지를 반환하지 않습니다. 잠시 후 Ctrl + C를 눌러 명령을 중단해야 할 수도 있습니다.

일시 중지는 현재 상태를 잃지 않고 서비스를 일시적으로 중단해야 할 때 유용합니다.

docker compose unpause 명령으로 서비스 재개

이 단계에서는 docker-compose unpause 명령을 사용하여 일시 중지된 서비스의 실행을 재개합니다. 이 명령은 일시 중지된 컨테이너의 일시 중지를 해제합니다.

docker-compose.yml 파일이 있는 ~/project 디렉토리에 있는지 확인하십시오.

cd ~/project

이제 다음 명령을 실행하여 web 서비스의 일시 중지를 해제합니다.

docker-compose unpause web

web 서비스의 일시 중지가 해제되고 있음을 나타내는 출력을 볼 수 있습니다.

컨테이너가 더 이상 일시 중지되지 않고 정상적으로 실행 중인지 확인하려면 docker ps 명령을 다시 사용할 수 있습니다.

docker ps

web 서비스 컨테이너의 STATUS 열을 관찰하십시오. 이제 (Paused) 표시기 없이 Up ...와 같은 상태가 표시되어야 합니다. 즉, 컨테이너의 프로세스가 재개되었습니다.

일시 중지를 해제한 후 컨테이너 내부의 Nginx 웹 서버가 다시 요청을 적극적으로 처리해야 합니다. curl을 사용하여 노출된 포트 80 에 액세스하여 이를 확인할 수 있습니다.

curl http://localhost:80

이번에는 컨테이너를 처음 시작한 후와 마찬가지로 기본 Nginx 환영 페이지의 HTML 출력을 즉시 받아야 합니다. 이는 서비스가 다시 완전히 작동함을 확인합니다.

일시 중지 해제는 일시 중지의 반대이며, 중단된 상태에서 서비스를 빠르게 재개할 수 있습니다.

재개 후 서비스 실행 확인

이 단계에서는 Nginx 서비스가 일시 중지 해제된 후 완전히 작동하는지 확인하기 위해 최종 확인을 수행합니다. 이전 단계에서 컨테이너 상태를 확인했지만, 컨테이너 내에서 실행 중인 애플리케이션이 예상대로 응답하는지 확인하는 것이 좋습니다.

~/project 디렉토리에 있는지 확인하십시오.

cd ~/project

포트 80 에서 실행 중인 Nginx 웹 서버에 액세스하기 위해 curl 명령을 다시 사용합니다.

curl http://localhost:80

터미널에 기본 Nginx 환영 페이지의 HTML 내용이 출력되는 것을 볼 수 있습니다. 이는 컨테이너 내부의 Nginx 프로세스가 실행 중이며 콘텐츠를 제공하고 있음을 확인합니다.

이 단계는 컨테이너의 일시 중지를 해제하면 컨테이너 내의 애플리케이션이 정상적인 작업을 재개할 수 있음을 이해하는 데 도움이 됩니다.

마지막으로, Docker Compose 에서 생성한 실행 중인 컨테이너와 네트워크를 정리하려면 docker-compose down 명령을 사용할 수 있습니다. 이 명령은 up으로 생성된 컨테이너, 네트워크 및 볼륨을 중지하고 제거합니다.

docker-compose down

서비스와 네트워크가 중지되고 제거되고 있음을 나타내는 출력을 볼 수 있습니다.

컨테이너가 더 이상 실행되지 않는지 확인하려면 docker ps를 사용할 수 있습니다.

docker ps

출력에는 실행 중인 컨테이너가 표시되지 않아야 하며, 이는 Nginx 서비스가 성공적으로 중지되고 제거되었음을 나타냅니다.

요약

이 랩에서는 Docker Compose 를 사용하여 서비스의 수명 주기를 관리하는 방법을 배웠습니다. Docker Compose 를 설치하고 간단한 Nginx 서비스를 정의하기 위해 docker-compose.yml 파일을 생성하는 것으로 시작했습니다.

그런 다음 docker compose up을 사용하여 정의된 서비스를 시작하고, docker compose pause를 사용하여 서비스의 프로세스를 일시적으로 중단했으며, 마지막으로 docker compose unpause를 사용하여 일시 중지된 서비스를 재개했습니다. 각 단계 후에 서비스의 상태를 확인하여 서비스 실행을 제어하기 위한 이러한 Docker Compose 명령의 실제 적용을 시연했습니다.