docker workflow
- 도커 이미지 빌드
- 도커 레지스트리에 공유
- 도커 이미지 실행
애플리케이션을 실행 가능한 상태로 만든 후(이미지 빌드) 레지스트리에 공유하면, 레지스트리를 통해 이미지를 다운받아 바로 실행할 수 있음
도커를 구성하고 있는 요소들은 다음과 같음
docker lifecycl (event state)
생성(created) -> 실행(start) -> 일시 정지(pause)/재개(unpause) -> 정지(stop) -> 재시작(restart) 또는 삭제(remove)
created
- 이미지로부터 컨테이너가 생성된 상태
- 파일 시스템이 설정되고, 네트워크와 볼륨이 준비됐지만 애플리케이션 실행이 되지 않은 상태
docker create
running
- 생성된 컨테이너를 실행하여 애플리케이션을 시작한 상태
- 이 때 컨테이너 내부에서 정의된 프로세스가 시작됨
docker start
: 생성된 컨테이너 실행docker run
: 생성과 실행을 동시에 수행
paused
- 실행 중인 컨테이너의 모든 프로세스를 일시적으로 멈춘 상태, 다시 시작될 때까지 정지 상태가 유지됨
- CPU 사용을 중지하지만, 메모리와 상태는 그대로 유지됨
docker pause
running (unpause)
- 일시 정지된 컨테이너의 프로세스를 다시 재개한 상태
docker unpause
exited (stop)
- 실행 중인 컨테이너를 종료한 상태
- 컨테이너는 운영체제의
SIGTERM
신호를 받아 정상적으로 종료됨 - 프로세스가 종료되고, 컨테이너는 멈추지만 삭제되지 않고 호스트 디스크에 남아 있음
docker stop
exited (kill)
- 컨테이너를 즉시 강제 종료한 상태
- 정상 종료 신호 상태가 아닌
SIGKILL
신호가 전송되어 프로세스가 즉시 종료됨 docker kill
running (restart)
- 종료된 컨테이너를 다시 시작한 상태
- docker stop 후 다시 시작할 때 유용함
docker restart