- 도커 컨테이너 생성 방법을 이해한다.
- 도커 컨테이너 실행 방법을 이해한다.
- 도커 컨테이너 중지 방법을 이해한다.
- 도커 컨테이너 삭제 방법을 이해한다.
- 4가지 수행 과정과 관련된 도커 컨테이너 생명주기를 이해한다.
$ docker create hello-world
- docker create {이미지 이름}
- docker 컨테이너를 생성하는 명령어이다.
- docker run 생명주기 중 앞부분에 해당하며, 컨테이너 하드디스크에 파일 스냅샷을 올려주게 된다.
- 생성이 되면서 아래 라인에 생성된 컨테이너 ID값을 출력해주는 걸 확인할 수 있다.
$ docker start a67cf6a54f15
- 확인
- docker start {컨테이너 아이디/이름}
- docker 컨테이너를 실행하는 명령어이다.
- docker run 생명주기 뒷부분에 해당하며, 컨테이너에 프로세스 실행 시작 명령어가 적용된다.
- docker start -a {컨테이너 아이디/이름} 의 형태가 되어야 원하는 출력문이 나온다.
- 컨테이너 아이디 위치엔 ID식별자 전체를 입력할 필요없이, 앞 부분만 잘라 넣어줘도 인식해준다.
- -a를 활용하지 않으면 아래처럼 그냥 입력한 값을 그대로 표출해준다.
$ docker run hello-world
- docker run {이미지 이름}
- 생성(create)과 실행(start)을 동시에 수행해주는 명령어이다.
- docker run 생명주기 전체를 수행한다.
- 이미 이전 블로그에서 확인한 명령어이기에 예시는 생략한다.
$ docker stop 4f6213c6c5c0
$ docker kill 4f6213c6c5c0
- docker stop {컨테이너 아이디/이름}
- docker kill {컨테이너 아이디/이름}
- docker stop 사용 시, 대략 5초 이상의 딜레이 이후에 중지 되었다.
- docker kill 사용 시, 곧장 중지 되었다.
- stop과 kill의 차이에 대해 이해할 필요가 있다.
- docker 컨테이너 중지 생명주기 중엔 SIGTERM(정리하는 시간)과 SIGKILL(중지) 구간이 있다.
- stop 명령어는 그동안 하던 작업들을 되도록 완료한 뒤에 컨테이너를 중지시킨다.
- stop은 SIGTERM 을 거친 후, SIGKILL을 이행한다.
- kill 명령어는 어떠한 것도 기다리지 않고 바로 컨테이너를 중지시킨다.
- kill은 SIGTERM 없이, SIGKILL을 이행한다.
$ docker rm 4f6213c6c5c0
- docker rm {컨테이너 아이디/이름}
- 실행중인 컨테이너를 우선 중지한 후에 삭제가 가능하다.
- docker rm `docker ps -a -q`
- 모든 컨테이너를 삭제할 수 있다.
- docker rmi {이미지 id}
- 도커 이미지를 삭제할 수 있다.
- docker system prune
- 한번에 컨테이너, 이미지, 네트워크 등을 모두 삭제할 수 있다.
- 도커를 쓰지 않거나 모두 정리하고 싶을 때 사용해주면 적합하다.
- 하지만 이것도 실행중인 컨테이너에는 영향을 주지 않는다는 점 주의하자.
- docker 컨테이너 삭제 생명주기에서 삭제는 곧장 실행된다.
- 단, 기억해야할 포인트는 실행중이지 않은 컨테이너만 삭제할 수 있다는 점이다.
위 명령어들을 통한 간단한 삭제 실습을 수행해보자.
1) 우선 현재 도커 컨테이너 리스트를 확인한다.
2) 4f6213c6c5c0 아이디를 가진 컨테이너를 삭제해본다.
3) 삭제되었음을 확인할 수 있다.
4) 모든 컨테이너를 삭제해보자. (아무것도 남지 않았음을 확인할 수 있다.)
5) 완전히 도커 관련 모든 것을 정리해보자.