이 글은 [2024 NEW] 개발자를 위한 쉬운 도커 강의를 듣고 작성한 글입니다! 모든 강의자료 이미지 출처는 해당 강사님께 있습니다.
이미지는 애플리케이션을 실행할 수 있는 모든 환경이 준비되어 있는 압축 파일이다.
다음은 컨테이너의 라이프사이클을 나타낸 것이다.
docker create
해당 명령어를 사용하면 이미지를 컨테이너로 만들 수 있다. 컨테이너를 실행하기 위해 격리된 공간이 만들어지며, 모든 리소스가 격리된 공간으로 분리된다.
docker start
해당 명령어를 사용하면 메타데이터의 Cmd 값을 사용하여 컨테이너를 running 상태로 만들 수 있다. 실행 상태가 되었다는 것은 정상적으로 프로세스가 실행중임을 의미한다. 이 프로세스는 CPU와 메모리를 사용한다.
docker run
해당 명령어는 docker create와 docker start가 합쳐진 명령어다. 그래서 docker run 명령어를 입력하면 컨테이너를 만드는 것과 동시에 바로 실행이 가능하다.
docker restart
실행 상태에서 docker restart 명령어를 입력하면, 프로세스를 재시작 할 수 있다. 실행중인 프로세스에 종료나 재시작 신호를 보내면 10초 후에 반영된다.
pause와 unpause
컨테이너에서 실해중인 프로세스를 일시정지 하거나 삭제할 수 있다. docker pause는 컨테이너에서 실행중인 모든 프로세스가 일시중지 된 상태이며 현재의 상태를 모두 메모리에 저장한다. docker unpause 를 사용하면 프로세스를 일시중지한 상태부터 재시작 할 수 있다.
stop
이 상태는 컨테이너의 프로세스를 완전히 중단시켰다는 것을 의미한다. 메모리와 CPU 사용이 모두 중단되며, 종료된 컨테이너를 다시 시작하면 컨테이너의 프로세스가 처음부터 다시 실행된다.
컨테이너는 모든 상태에서 rm 명령어를 사용하여 삭제할 수 있다. 하지만, 실행중인 컨테이너를 삭제하기 위해서는 -f 옵션을 사용해야 한다. 컨테이너의 상태는 프로세스의 상태와 일치한다.