본문 바로가기
AWS/Part 5. Ch02 도커를 이용한 컨테이너 관리

CH02_02. 도커 컨테이너 다루기 컨테이너 라이프사이클

by Engineer-Lee 2022. 6. 20.
반응형

도커의 라이프사이클은 아래와 같다.

 

 

 

 

 

 

 

 

 

컨테이너 시작 명령어는 아래와 같다.

도커 create / run 명령어 모두 이미지가 없을 경우 자동으로 pull을 먼저 수행하여 이미지를 다운로드 받는다.

 

 

 

 

이제 간단하게 실습을 진행해보자

이전에 테라폼을 이용하여 만든 우분투 인스턴스에 접속해보자

 

그리고 docker -v 명령어로 도커의 버전을 확인할 수 있다.

docker ps 명령어는 실행 중인 도커 컨테이너 목록을 확인할 수 있고 docker ps -a 명령어는 모든 컨테이너 목록을 확인한다.

실행 중이지 않은 한 컨테이너가 있어서 docker rm [컨테이너 ID] 명령어로 삭제하였다.

 

 

그리고 docker run nginx 명령어로 도커 허브에 nginx 이미지의 최신 버전의 컨테이너를 생성시켰다.

 

 

 

이번에는 docker create 명령어를 사용해보자

docker create nginx 명령어를 입력하면 nginx 이미지가 생성되고 그 후 나오는 랜덤한 해시 값은 도커 엔진이 부여하는 컨테이너의 고유 ID이다.

 

 

 

docker start 명령어의 사용방법은 두 가지가 있는데

docker start [컨테이너 ID] 명령어를 입력하는 방법과 docker start [컨테이너 name]을 입력하는 방법이다.

 

 

 

 

docker run 명령어에는 중요한 옵션들이 몇 가지 있다.

 

 

 

 

컨테이너 상태 확인 명령어는 아래와 같다.

 

 

이제 우분투 컨테이너를 실행해보자

docker run ubuntu:focal 명령어를 입력하면 우분투 컨테이너가 만들어지고 바로 종료가 되는 걸 볼 수 있다.

이는 bash라는 명령어가 interactive한 표준 입력을 필요로 하는 어플리케이션이기 때문에 nginx와 같은 어플리케이션과는 동작이 다르다.

 

docker run ubuntu:focal 명령어 뒤에 실행하고 싶은 명령어를 입력하면 그 명령어만 실행한 후 바로 컨테이너가 종료된다.

 

 

그러나 우분투 쉘에 계속 접속하고 싶을 수 있다.

이럴 때 사용하는 옵션이 -i와 -t이다. docker run -i -t ubuntu:focal 명령어를 입력하면 bash에 잘 붙은걸 볼 수 있다.

 

그 후에 exit 명령어를 입력하면 bash쉘을 빠져나오면서 컨테이너가 종료되는 걸 볼 수 있다.

만약 컨테이너를 종료시키지 않고 빠져나오고 싶다면 ctrl + p , q 를 입력하면 된다. 

 

 

두 번째로  -d 옵션에 대해 알아보자

docker run -d nginx를 입력하면 nginx 컨테이너가 background 상태로 실행된다.

 

 

세 번째로 --name 옵션을 사용해보자

docker run -d --name my-nginx 를 입력하면 원하는 이름의 컨테이너를 만들 수 있다.

 

 

네 번째로 -p 옵션을 이용해서 포트바인딩을 해보자

docker run -p 80:80 nginx 으로 호스트의 80번 포트와 컨테이너의 80번 포트를 연결할 수 있다.

 

 

 

다섯 번째로 --rm 옵션으로 컨테이너를 삭제해보자

docker run --rm ubuntu:focal id 명령어를 입력하면 id 명령어를 우분투가 실행하고 컨테이너까지 삭제된다.

 

 

 

 

 

컨테이너 일시중지 및 재개 명령어는 아래와 같다.

 

docker pause 명령어를 입력하면 컨테이너가 일시중지된다.

 

docker unpause 명령어를 입력하면 컨테이너 일시중지가 해제된다.

 

 

 

 

컨테이너 종료 명령어는 아래와 같다.

 

 

 

 

 

컨테이너 삭제 명령어는 아래와 같다.

반응형