본문 바로가기

Docker

도커 / 컨테이너 라이프 사이클 ((LifeCycle))

컨테이너의 라이프사이클 ((Lifecycle))

컨테이너의 상태

  1. 생성 ((create)) 상태 docker create 명령어를 통해 컨테이너 생성단계 진입 생성 단계에서는 내부에서 프로세스를 실행하지 않기 때문에 호스트 OS의 CPU와 메모리를 사용하지 않는다.
  2. 생성단계에서 docker start명령을 사용하면 컨테이너의 메타데이터의 Cmd 값을 사용하여 Running 상태로 만들 수 있다. 실행상태라는 것은 컨테이너 내에서 정상적으로 프로세스가 실행중이라는 것을 의미한다. CPU와 메모리를 사용한다.
  3. docker run 은 docker create + docker run 명령이 합쳐진 것이다.
  4. docker restart명령을 통해 프로세스를 재시작 할 수 있다. 10초 뒤에 프로세스가 재시작한다
  5. docker pause상태에서는 컨테이너의 모든 프로세스가 일시중지된 상태이다. 일시중지한다는 것은 현재 상태를 모두 메모리에 저장하는 것이다. CPU는 사용하지 않고 메모리만 사용하게 된다.
  6. docker unpause하면 프로세스를 일시정지했던 시점부터 재시작할 수 있다.
  7. Stop상태는 컨테이너에서 실행시킨 프로세스를 완전히 중단시켰다는 것을 의미한다. 메모리 CPU사용이 중단 된다, docker start하면 처음부터 다시 시작함
  8. docker rm을 통해 컨테이너를 삭제할 수 있다. 실행중인 컨테이너를 삭제시 docker rm -f 사용해야함

즉 컨테이너의 라이프사이클은 생성 실행 정지 종료 삭제로 나뉘어진다. 이는 대부분 프로세스의 상태와 일치한다.