컨테이너 생성 및 중지
이 단계에서는 Docker 컨테이너를 생성하고 중지하는 방법을 배우게 됩니다. 컨테이너는 이미지의 실행 가능한 인스턴스입니다. Docker API 또는 CLI 를 사용하여 컨테이너를 생성, 시작, 중지, 이동 또는 삭제할 수 있습니다.
먼저, hello-world 이미지를 Docker Hub 에서 가져오겠습니다. 이것은 테스트에 유용한 매우 작은 이미지입니다.
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 는 새 컨테이너를 생성하고 이미지에 지정된 명령을 실행합니다. hello-world의 경우, 명령은 단순히 메시지를 출력한 다음 종료됩니다.
docker run hello-world
다음과 유사한 출력을 볼 수 있습니다.
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
이 출력은 컨테이너가 성공적으로 실행되어 메시지를 출력했음을 확인합니다. 컨테이너의 명령이 완료되었으므로 컨테이너가 중지되었습니다.
중지된 컨테이너를 포함하여 시스템의 컨테이너를 보려면 docker ps -a 명령을 사용할 수 있습니다.
docker ps -a
컨테이너 목록이 표시됩니다. hello-world 컨테이너가 목록에 있어야 하며 상태는 Exited여야 합니다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
... hello-world "/hello" About a minute ago Exited (0) 58 seconds ago ...
이제 다른 컨테이너를 생성해 보겠습니다. 이번에는 ubuntu 이미지를 사용하고 컨테이너를 잠시 동안 실행 상태로 유지하는 명령을 실행합니다. sleep 명령을 사용하여 컨테이너를 10 초 동안 활성 상태로 유지합니다.
먼저, 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
이제 ubuntu 이미지에서 컨테이너를 실행하고 sleep 10 명령을 실행합니다. 컨테이너가 백그라운드에서 실행되고 터미널을 차단하지 않도록 detached 모드 (-d) 로 실행합니다.
docker run -d ubuntu sleep 10
이 명령은 컨테이너 ID 를 출력합니다.
[container_id]
docker ps를 사용하여 실행 중인 컨테이너를 확인합니다.
docker ps
ubuntu 컨테이너가 Up 상태로 나열되어야 합니다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[container_id] ubuntu "sleep 10" About a minute ago Up 5 seconds ...
약 10 초 후에 sleep 10 명령이 완료되고 컨테이너가 중지됩니다. docker ps -a를 다시 사용하여 중지된 컨테이너를 포함한 모든 컨테이너를 확인합니다.
docker ps -a
ubuntu 컨테이너의 상태는 이제 Exited여야 합니다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[container_id] ubuntu "sleep 10" About a minute ago Exited (0) 5 seconds ago ...
...
마지막으로, docker stop 명령을 사용하여 ubuntu 컨테이너를 수동으로 중지해 보겠습니다. ID 또는 이름으로 실행 중인 컨테이너를 중지할 수 있습니다. 컨테이너를 실행했을 때 출력된 컨테이너 ID 를 사용합니다. [container_id]를 실제 ubuntu 컨테이너의 ID 로 바꿉니다.
docker stop [container_id]
이 명령은 중지된 컨테이너 ID 를 출력합니다.
[container_id]
docker ps를 다시 사용하여 컨테이너가 더 이상 실행되지 않는지 확인합니다.
docker ps
ubuntu 컨테이너는 실행 중인 컨테이너 목록에 나타나지 않아야 합니다.