본문 바로가기

Docker

[Docker] 도커 컨테이너 생명주기 명령어 (docker create, start, stop, kill, rm , system prune )

생명주기 

 

생성 (create) -> 시작 (start) -> 실행 (running) -> 중지 (stopped) -> 삭제 (deleted)

 

docker create <이미지이름>

                    docker start <컨테이너이미지이름>

========docker run <이미지이름>======= 

 

도커 생성

 

docker run <이미지이름> = docker create<이미지이름> + docker start <컨테이너이미지이름> 

 

docker start <컨테이너 아이디/이름>

 

ex)  docker create hello-world

밑줄친 부분이 생성된 컨테이너의 아이디 

 

> docker start -a <컨테이너아이디>

(컨테이너 아이디 일부분만 붙여도 괜찮다.)

 

-a 는 attache 옵션이다.

( 도커 컨테이너가 실행이 될 때 output 을 화면에 표출해 주는 역활을 한다) 

도커 중지

> docker stop <중지할 컨테이너 이름 /아이디>

> docker kill   <중지할 컨테이너 이름 /아이디>

 

컨테이너의 이름을 모른다면??? docker ps 를 이용해서 알 수 있슴다 :)

 

터미널 하나를 띄어서 docker run alpine ping localhost 를 날려주었고요, 그것을 stop 과 kill 로 중지시켜보겠습니다.

> docker stop <컨테이너 아이디>

 

stop 은 gracefully (자비롭게) 하게 중지를 시킨다.

자비롭게 그동안 하던 작업들을 메시지를 보내고 있었따면 보내고 있던 메시지를 완료하고 컨테이너를 중지 시킨다.

 

> docker kill <컨테이너 아이디>

 

kill 은 stop 과 달리 어떠한 것도 가리지 않고(기다리지 않음) 바로 컨테이너를 중지 시킨다.

 

docker stop -> SIGTERM (정리하는 시간 grace period) -> SIGKILL -> Main Process

docker kill -> SIGKILL -> Main Process

 

도커 삭제하기 (컨테이너 삭제하기)

 

> docker rm <중지할 컨테이너 아이디/이름>

 

=> 먼저 실행중이면 중지하고 삭제가 가능하다.

컨테이너 다중으로 지우려면?

 

> docker rm 'docker ps -a -q'

 

이미지를 삭제 하고 싶다면?

> docker rmi <이미지ID>

 

한번에 컨테이너 , 이미지, 네트워크 모두 삭제하고 싶다면?

> docker system prune

- 도커를 쓰지 않을때 모두 정리하고 싶을때 사용해 주면 좋음

- 실행중인 컨테이너에는 영향을 주지 않음 !!