컨테이너 생성 및 중지
이 단계에서는 Docker 컨테이너를 생성하고 중지하는 방법을 배우게 됩니다. Docker 컨테이너는 애플리케이션을 실행하는 데 필요한 모든 것을 포함하는 가볍고, 이식 가능하며, 자급자족하는 단위입니다.
먼저, 컨테이너를 생성하는 데 사용할 Docker 이미지를 가져와 보겠습니다. 최소한의 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
이제 이미지가 있으므로, 이를 사용하여 컨테이너를 생성하고 실행해 보겠습니다. docker run 명령을 사용합니다. -d 플래그는 컨테이너를 detached 모드 (백그라운드) 에서 실행하고, --name 플래그는 컨테이너에 이름을 할당합니다.
docker run -d --name my-ubuntu-container ubuntu sleep infinity
이 명령은 ubuntu 이미지에서 my-ubuntu-container라는 컨테이너를 생성하고, 그 안에서 sleep infinity 명령을 실행합니다. sleep infinity 명령은 컨테이너를 무기한으로 실행 상태로 유지합니다.
컨테이너 ID 인 긴 문자열을 출력으로 볼 수 있습니다.
<container_id>
컨테이너가 실행 중인지 확인하기 위해 docker ps 명령을 사용할 수 있습니다.
docker ps
이 명령은 실행 중인 모든 컨테이너를 나열합니다. my-ubuntu-container가 나열된 것을 볼 수 있습니다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "sleep infinity" X seconds ago Up X seconds my-ubuntu-container
이제 다른 컨테이너를 생성해 보지만, 이번에는 특정 이름을 지정하지 않겠습니다. Docker 가 자동으로 이름을 생성합니다.
docker run -d ubuntu sleep infinity
다시, 컨테이너 ID 를 출력으로 볼 수 있습니다.
<container_id>
두 컨테이너가 실행 중인지 확인하기 위해 다시 docker ps를 실행합니다.
docker ps
이제 두 개의 컨테이너가 나열된 것을 볼 수 있습니다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "sleep infinity" X seconds ago Up X seconds my-ubuntu-container
<container_id> ubuntu "sleep infinity" X seconds ago Up X seconds <random_name>
이제 my-ubuntu-container라는 컨테이너를 중지해 보겠습니다. 컨테이너 이름 또는 ID 를 사용하여 docker stop 명령을 사용할 수 있습니다.
docker stop my-ubuntu-container
컨테이너가 중지되었음을 나타내는 컨테이너 이름을 출력으로 볼 수 있습니다.
my-ubuntu-container
다시 docker ps를 실행합니다. docker ps는 실행 중인 컨테이너만 표시하므로 my-ubuntu-container가 더 이상 나열되지 않습니다.
docker ps
중지된 컨테이너를 포함한 모든 컨테이너를 보려면 docker ps -a 명령을 사용합니다.
docker ps -a
이제 두 컨테이너를 모두 볼 수 있으며, my-ubuntu-container의 상태는 Exited입니다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "sleep infinity" X minutes ago Exited (0) X seconds ago my-ubuntu-container
<container_id> ubuntu "sleep infinity" X minutes ago Up X minutes <random_name>
마지막으로, 두 번째 컨테이너를 컨테이너 ID 를 사용하여 중지해 보겠습니다. ID 는 docker ps -a의 출력에서 얻을 수 있습니다. <container_id>를 두 번째 컨테이너의 실제 ID 로 바꿉니다.
docker stop <container_id>
컨테이너 ID 를 출력으로 볼 수 있습니다.
<container_id>
두 컨테이너가 모두 중지되었는지 확인하기 위해 마지막으로 docker ps -a를 실행합니다.
docker ps -a
이제 두 컨테이너 모두 상태가 Exited여야 합니다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "sleep infinity" X minutes ago Exited (0) X seconds ago my-ubuntu-container
<container_id> ubuntu "sleep infinity" X minutes ago Exited (0) X seconds ago <random_name>