Docker 컨테이너 일시 중지 해제 명령어로 컨테이너 재개하는 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 Docker 컨테이너의 상태를 관리하는 방법을 배우게 됩니다. 특히 컨테이너를 일시 중지 (pausing) 하고 일시 중지 해제 (unpausing) 하는 데 중점을 둡니다. 먼저 간단한 컨테이너를 생성하고 실행하는 것으로 시작합니다.

생성 후, 실행 중인 컨테이너를 일시 중지하고 일시 중지된 상태를 확인하는 연습을 할 것입니다. 마지막으로, 컨테이너의 일시 중지를 해제하고 실행이 재개되었는지 확인하는 방법을 배우게 됩니다. 이 실습을 통해 docker container unpause 명령을 사용하는 방법에 대한 실질적인 이해를 얻을 수 있습니다.

컨테이너 생성 및 실행

이 단계에서는 Docker 컨테이너를 생성하고 실행하는 방법을 배우게 됩니다. 컨테이너는 코드와 모든 종속성을 패키징하여 애플리케이션이 한 컴퓨팅 환경에서 다른 환경으로 빠르고 안정적으로 실행되도록 하는 표준 소프트웨어 단위입니다.

먼저, Docker Hub 에서 간단한 이미지를 가져와 보겠습니다. Docker 설치를 테스트하는 데 사용되는 매우 작은 이미지인 hello-world 이미지를 사용합니다.

docker pull hello-world

이미지가 가져와지고 추출되고 있음을 나타내는 출력을 볼 수 있습니다.

Using default tag: latest
latest: Pulling from library/hello-world
...
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

이제 이미지가 있으므로 이 이미지를 기반으로 컨테이너를 실행할 수 있습니다. hello-world 이미지에서 컨테이너를 실행하면 Docker 는 터미널에 메시지를 출력한 다음 종료됩니다.

docker run hello-world

Docker 설치가 올바르게 작동하는지 확인하는 다음과 유사한 출력을 볼 수 있습니다.

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (If you already had the image locally, skipped the pull step.)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

이 명령은 hello-world 이미지에서 컨테이너를 생성하고 실행했습니다. 컨테이너의 작업이 메시지를 출력하고 종료하는 것이었으므로 더 이상 실행되지 않습니다.

실행 중인 컨테이너 일시 중지

이전 단계에서는 즉시 종료되는 간단한 컨테이너를 실행했습니다. 일시 중지 및 일시 중지 해제를 시연하기 위해 실행 상태를 유지하는 컨테이너가 필요합니다. 간단한 ubuntu 컨테이너를 사용하고 백그라운드에서 실행 상태를 유지합니다.

먼저, ubuntu 이미지를 가져와 보겠습니다.

docker pull ubuntu

이미지가 가져와지고 추출되고 있음을 나타내는 출력을 볼 수 있습니다.

Using default tag: latest
latest: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

이제 백그라운드에서 실행되도록 분리 모드 (-d) 로 ubuntu 컨테이너를 실행해 보겠습니다. 또한 쉽게 참조할 수 있도록 이름을 지정합니다 (my-ubuntu). 컨테이너를 무기한 실행 상태로 유지하기 위해 tail -f /dev/null 명령을 사용합니다.

docker run -d --name my-ubuntu ubuntu tail -f /dev/null

이 명령은 컨테이너 ID 를 출력합니다.

<container_id>

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

docker ps

Up 상태의 my-ubuntu 컨테이너를 보여주는 다음과 유사한 출력을 볼 수 있습니다.

CONTAINER ID   IMAGE          COMMAND               CREATED         STATUS         PORTS     NAMES
<container_id>   ubuntu         "tail -f /dev/null"   X seconds ago   Up X seconds             my-ubuntu

이제 실행 중인 컨테이너가 있으므로 컨테이너 이름 또는 ID 를 사용하여 docker pause 명령을 사용하여 일시 중지할 수 있습니다.

docker pause my-ubuntu

명령이 성공하면 출력이 없습니다. 이제 컨테이너가 일시 중지되었습니다.

컨테이너 일시 중지 상태 확인

이전 단계에서 my-ubuntu 컨테이너를 일시 중지했습니다. 이제 컨테이너가 실제로 일시 중지된 상태인지 확인해 보겠습니다.

docker ps 명령을 다시 사용하여 실행 중인 컨테이너의 상태를 확인할 수 있습니다.

docker ps

이 명령은 현재 실행 중인 컨테이너만 표시합니다. my-ubuntu 컨테이너를 일시 중지했으므로 docker ps의 출력에 나타나지 않아야 합니다.

CONTAINER ID   IMAGE     COMMAND    CREATED    STATUS    PORTS     NAMES

중지, 종료 또는 일시 중지된 컨테이너를 포함한 모든 컨테이너를 보려면 docker ps와 함께 -a 플래그를 사용할 수 있습니다.

docker ps -a

이제 my-ubuntu 컨테이너가 나열되고 상태가 일시 중지되었음을 나타내야 합니다. STATUS 열에서 Paused라는 단어를 찾으십시오.

CONTAINER ID   IMAGE          COMMAND               CREATED         STATUS                   PORTS     NAMES
<container_id>   ubuntu         "tail -f /dev/null"   X minutes ago   Up X minutes (Paused)             my-ubuntu

(Paused) 상태는 컨테이너가 활성으로 실행되고 있지 않지만, 일시 중지 해제될 준비가 되어 메모리에 있음을 확인합니다.

컨테이너 재개

이전 단계에서 my-ubuntu 컨테이너가 일시 중지되었는지 확인했습니다. 이제 일시 중지를 해제하고 실행을 재개해 보겠습니다.

컨테이너의 일시 중지를 해제하려면 컨테이너 이름 또는 ID 를 사용하여 docker unpause 명령을 사용합니다.

docker unpause my-ubuntu

명령이 성공하면 출력이 없습니다. 이제 컨테이너는 일시 중지된 지점부터 다시 실행되어야 합니다.

컨테이너 재실행 확인

이전 단계에서 my-ubuntu 컨테이너의 일시 중지를 해제했습니다. 이제 컨테이너가 다시 활발하게 실행 중인지 확인해 보겠습니다.

docker ps 명령을 사용하여 현재 실행 중인 컨테이너를 나열할 수 있습니다.

docker ps

이번에는 my-ubuntu 컨테이너가 출력에 나타나야 하며, 상태는 Up이어야 합니다.

CONTAINER ID   IMAGE          COMMAND               CREATED         STATUS         PORTS     NAMES
<container_id>   ubuntu         "tail -f /dev/null"   X minutes ago   Up X seconds             my-ubuntu

Up 상태는 컨테이너가 실행 중이며 해당 프로세스가 활성 상태임을 나타냅니다.

더 확인하기 위해 docker ps -a를 사용하여 상태를 확인할 수도 있습니다. (Paused) 표시기 없이 Up이 표시되어야 합니다.

docker ps -a
CONTAINER ID   IMAGE          COMMAND               CREATED         STATUS         PORTS     NAMES
<container_id>   ubuntu         "tail -f /dev/null"   X minutes ago   Up X seconds             my-ubuntu

이는 컨테이너가 일시 중지된 상태에서 성공적으로 재개되었음을 확인합니다.

마지막으로, 생성한 컨테이너를 정리해 보겠습니다. 먼저 중지한 다음 제거해야 합니다.

docker stop my-ubuntu

이 명령은 컨테이너를 중지합니다. 컨테이너 이름 또는 ID 가 출력되는 것을 볼 수 있습니다.

my-ubuntu

이제 docker rm 명령을 사용하여 컨테이너를 제거합니다.

docker rm my-ubuntu

이 명령은 컨테이너를 제거합니다. 컨테이너 이름 또는 ID 가 출력되는 것을 볼 수 있습니다.

my-ubuntu

요약

이 랩에서는 hello-world 이미지를 가져와 실행하여 Docker 컨테이너를 생성하고 실행하는 방법을 배웠습니다. 이는 이미지를 얻고 해당 이미지에서 컨테이너를 시작하는 기본적인 프로세스를 보여주었습니다. 그런 다음 실행 중인 컨테이너를 일시 중지하여 해당 프로세스를 효과적으로 중단하고 일시 중지된 상태를 확인하는 방법을 배웠습니다. 마지막으로, 컨테이너의 실행을 재개하기 위해 일시 중지를 해제하는 연습을 하고 다시 실행 중임을 확인했습니다.