땃쥐네

[Docker] 도커 컨테이너 상태 본문

DevOps/Docker

[Docker] 도커 컨테이너 상태

ttasjwi 2022. 12. 21. 18:02

 

도커를 다루는 작업은 결국 이미지로부터 컨테이너를 띄우고, 컨테이너를 정지시키거나 없애거나 하는 행위의 흐름을 통해 이루어진다. 도커의 컨테이너 상태를 확인할 수 있어야하고, 명령어를 통해 컨테이너의 상태를 변경할 수 있어야한다.

이를 위한 기본적인 명령어들을 몇 가지 확인해보려고 한다.


 

1. docker ps : 실행 중인 컨테이너 확인

1.1 실습을 위해 우분투 컨테이너를 백그라운드에서 실행

docker run -d -t ubuntu:22.04
  • 우분투 이미지를 컨테이너화 해서 백그라운드에서 실행한다.
  • 백그라운드에서 계속 실행되어야할 때가 있는데 이럴 경우 -d 옵션을 붙여주면 된다.
  • 웹 서버와 같이, 백그라운드에서 계속 운영하는 애플리케이션을 동작 시킬 경우 이 옵션을 사용하면 된다. 

1.2 실행 중인 컨테이너 확인

docker ps
CONTAINER ID   IMAGE          COMMAND   CREATED          STATUS          PORTS     NAMES
d3ec04c3e647   ubuntu:22.04   "bash"    14 seconds ago   Up 13 seconds             objective_archimedes
  • 이전에 실행한 ubuntu가 백그라운드에서 계속 실행 중인 것을 확인할 수 있다.

2. docker ps -a : 모든 상태의 컨테이너 확인(실행 상태, 중지상태, ...)

2.1 컨테이너 정지

docker stop d3ec04c3e647
  • 실행 중인 컨테이너를 정지시킨다.

2.2 docker ps -a : 모든 컨테이너 확인

docker ps -a
CONTAINER ID   IMAGE          COMMAND   CREATED       STATUS                       PORTS     NAMES
d3ec04c3e647   ubuntu:22.04   "bash"    2 hours ago   Exited (137) 7 seconds ago             objective_archimedes
  • 이 명령을 사용하면 모든 상태의 컨테이너를 확인할 수 있다.

 

3. 도커 컨테이너의 상태 및 상태 전환 명령어

3.1 도커 컨테이너의 상태

  • Created : 생성된 상태(이미지에서는 생성(create) 명령 직후)
  • Running : 실행 중인 상태
  • Restarting : 재시작 상태(재시작 진행 중)
  • Exited : 정지, 종료 상태
  • Paused : 일시 정지 상태
  • Dead : 컨테이너가 작동하지 않음. 다시 시작할 수 없고, 제거만 가능
  • 참고 : https://www.baeldung.com/ops/docker-container-states

3.2 상태 전환 명령어

  • docker run : 이미지로부터 컨테이너를 실행함
  • docker rm : 컨테이너를 제거함
  • docker create : 이미지로부터 컨테이너를 실행하지 않고, 컨테이너 상태로만 만듬
  • docker start : 시작 상태 또는 정지 상태의 컨테이너를 시작함
  • docker stop : 컨테이너를 정지, 종료 시킴
  • docker pause : 컨테이너를 일시정지 시킴
  • docker unpause : 일시정지 상태의 컨테이너를 다시 실행함
  • docker restart: 현재 컨테이너를 멈추고 재시작하는 임시적인 상태

우리는 run 명령어를 통해 이미지로부터 바로 도커 컨테이너를 생성하고 실행했는데, 사실 이미지로부터 실행하지 않은 컨테이너만 만들 수도 있었다. 위의 start 명령어가 그러한 명령이다. 위에 있는 그림을 보면서 도커 컨테이너 상태를 어떤 식으로 조작할 수 있을 지 확인하고 적절한 명령어를 통해 도커의 상태를 조작시키다 보면 익숙해질 것이다. 


참고 자료

Comments