[docker] 완벽가이드 책 리뷰 8일차

오현우·2022년 5월 31일
0

docker

목록 보기
8/11

도커 컨테이너의 라이프 사이클

이미지가 만들어졌으면 컨테이너 생성이 가능하다. 도커 이미지를 통해 생성된 컨테이너의 라이프 사이클을 살펴보면 아래와 같다.

컨테이너의 생성

아래의 명령을 실행하면 지정한 이미지를 바탕으로 컨테이너가 만들어진다.(snapshot)

 docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

위의 명령어는 컨테이너를 작성하기만 할뿐 컨테이너를 시작하지는 않는다.
때문에 컨테이너 생성과 동시에 시작하는 도커 run 과 많은 명령어를 공유하게 된다.

아래 독스에서 옵션 아규먼트에 대해 알 수 있다.
전체적인 내용들은 독스에서 확인이 가능하며 아래에 기술할 내용들도 아래 독스에서 찾아볼 수 있다.

https://docs.docker.com/engine/reference/commandline/create/

컨테이너 생성 및 시작

도커 컨테이너 생성 및 시작은 docker contaniner run 명령으로 시작이 된다.

docker container run [options] image[:tag] [argument]

컨테이너를 직접 만들어보자.

아래 명령어를 실행시켜서 우분투 최신 이미지를 받아오자.

docker image pull ubuntu

해당 이미지를 바탕으로 컨테이너를 만든 뒤 bash를 실행시켜 보자.

docker container run -it --name "test" ubuntu /bin/bash

정상적으로 bash가 실행되는 것을 볼 수 있다. exit을 해 배쉬를 빠져나가자..

container 백그라운드 실행 옵션

--detach, -d: 백그라운드에서 실행
--user, -u: 사용자명을 지정
--rm: 명령 실행 완료 후 컨테이너를 자동으로 삭제
--restart=[no | on-failure:횟수 n | always | unless-stopped]: 재시작 옵션 지정

docker container run -d --name "test1" centos /bin/ping localhost

아래와 같이 잘 출력이 되고 있다.

container 네트워크 설정

docker container run [networt_options] image[:tag] [arguments]

컨테이너를 시작할 때 네트워크에 관한 설정을 할 수 있다.
컨테이너의 포트 번호와 호스트 포트 번호를 매핑할 때 아래와 같은 명령어를 실행하면 됩니다.

docker container run -d -p 8080:80 nginx

호스트 8080 port 와 컨테이너 포트 80을 매핑시킨 것

container 자원 지정

cpu나 메모리와 같은 자원을 지정하여 컨테이너를 생성 및 실행할 수 있다.

docker container run [resource_option] image[:tag] [arguments]

container의 환경 변수나 컨테이너 안의 작업 디렉토리등을 지정

docker container run [환결설정 옵션] 이미지이름[:태그] [인수]

이외에도 알아두면 좋을 명령어

docker container ls: 작동중인 컨테이너의 가동 상태를 확인하는 명령어
대부분의 서치 명령어는 --filter, -f 가 가능하므로 잘 활용하자.
example > docker container ls -a -f name=test1
(--format 형식도 유용하다.)
docker container ls -a --format "{{.Names}}: {{.Status}}"

docker container stats [container id]: 컨테이너 이름이나 식별자를 통해 가동 상태 목록을 확인 할 수 있다.

docker container start [option] <container id> [container id]: 하나 이상의 컨테이너를 실행시킨다.
docker container stop [option] <container id> [container id] : 하나 이상의 컨테이너를 중지시킨다.

docker container restart [option] <container id> [container id]: 하나 이상의 컨테이너를 재시작시킨다.

docker container rm [option] <container id> [container id]: 하나 이상의 컨테이너를 삭제시킨다.

docker container prune: 가동되고 있지 않은 모든 컨테이너를 삭제한다.

docker container pause <container id>: 해당 컨테이너에 실행정인 프로세스를 중지시킨다. 재개하려면 unpause 로 위의 명령어를 바꿔준다.

profile
핵심은 같게, 생각은 다르게

0개의 댓글