Docker 컨테이너 생성/시작/정지 명령어

배세훈·2022년 6월 2일
0

docker

목록 보기
2/2

Docker 컨테이너 생성 / 시작 / 정지

컨테이너 생성 및 시작(docker container run)

docker container run [옵션] 이미지명[:태그명] [인수]

지정할 수 있는 주요 옵션
옵션 설명
--attach, -a 표준 입력(STDIN), 표준 출력(STDOUT), 표준 오류 출력(STDERR)에 Attach
--cidfile 컨테이너 ID를 파일로 출력한다.
--detach, -d 컨테이너를 생성하고 백그라운드에서 실행한다.
--interactive, -i 컨테이너의 표준 입력을 연다
--tty, -t 단말기 디바이스를 사용한다.
docker container run 대화식 실행

docker container run -it --name "kafka" kafkaimage /start-kafka.sh

  • docker container run: 컨테이너를 생성 및 실행
  • -it: 콘솔에 결과를 출력하는 옵션
  • --name "kafka" : 컨테이너명
  • kafkaimage: 이미지명
  • start-kafka.sh: 컨테이너에서 실행할 명령

컨테이너의 백그라운드 실행(docker container run)

docker container run [실행 옵션] 이미지명[:태그명] [인수]

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

docker container run -d centos /bin/ping localhost

  • docker container run: 컨테이너를 생성 및 실행
  • -d: 백그라운드에서 실행하는 옵션
  • centos: 이미지명
  • /bin/ping localhost: 컨테이너에서 실행하는 옵션
--restart
  • 명령의 실행 결과에 따라 컨테이너를 재시작할 때는 --restart 옵션을 지정
설정값 설명
no 재시작하지 않는다.
on-failure 종료 스테이터스가 0이 아닐 때 재시작한다
on-failure:횟수n 종료 스테이터스가 0이 아닐 때 n번 재시작한다
always 항상 재시작한다
unless-stopped 최근 컨테이너가 정지 상태가 아니라면 항상 재시작한다.
# --restart 옵션
docker run --restart always -d centos:latest sleep 10
# 10초 동안 sleep을 백그라운드로 실행, --restart always로 sleep 10이 계속 반복

docker run --restart on-failure -d centos:latest sleep 10
# 10초 동안 sleep을 백그라운드로 실행 후 exited 됨

docker run --name hello -rm hello-world:latest
# 실행 후 container ls -a로 확인해봐도 찾을 수 없음 명령 실행 후 컨테이너가 자동으로 삭제됨

자원을 지정하여 컨테이너 생성 및 실행

  • 컨테이너를 시작할 때 CPU와 메모리의 자원 이용을 제한할 수 있다.
    docker stats : 컨테이너 자원 사용 정보를 볼 수 있다.

docker container run 명령의 자원 지정

docker container run [자원 옵션] 이미지명[:태그명] [인수]

지정할 수 있는 주요 옵션
옵션 설명
--cpu-shares, -c CPU의 사용 배분(비율)
--memory, -m 사용할 메모리를 제한하여 실행(단위는 b, k, m, g 중 하나)
--volume=[호스트의 디렉토리]:[컨테이너의 디렉토리], -v 호스트와 컨테이너의 디렉토리를 공유
docker run -dit --memory 1g centos:latest
docker run --cpus 0.3 --rm -dit --name os2 centos:latest
docker run --cpus 0.1 --rm -dit --name os3 centos:latest

가동 컨테이너 목록 표시

docker ls [옵션]

지정할 수 있는 주요 옵션
옵션 설명
--all, -a 실행 중/정지 중인 것도 포함하여 모든 컨테이너를 표시
--filter, -f 표시할 컨테이너의 필터링
--format 표시 포맷을 지정
--last, -n 마지막으로 실행된 n건의 컨테이너만 표시
--latest, -l 마지막으로 실행된 컨테이너만 표시
--no-trunc 정보를 생략하지 않고 표시
--quiet, -q 컨테이너 ID만 표시
--size, -s 파일 크기 표시
docker container ls 명령 결과
항목 설명
CONTAINER ID 컨테이너 ID
IMAGE 컨테이너의 바탕이 된 이미지
COMMAND 컨테이너 안에서 실행되고 있는 명령
CREATED 컨테이너 작성 후 경과 시간
STATUS 컨테이너의 상태(restarting, running, paused, exited)
PORTS 할당된 포트
NAMES 컨테이너 이름

컨테이너를 생성 및 시작하는 환경을 지정

docker container run 명령의 환경설정

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

지정할 수 있는 주요 옵션
옵션 설명
--env=[환경변수], -e 환경변수를 설정한다.
--env-file=[파일명] 환경변수를 파일로부터 설정한다.
--read-only=[true | false] 컨테이너의 파일 시스템을 읽기 전용으로 만든다.
--workdir=[패스], -w 컨테이너의 작업 디렉토리를 지정한다.
-u, --user=[사용자명] 사용자명 또는 UID를 지정한다.
docker run -it -e TEST1=Hello -e TEST2 --rm centos:latest 

# Hello 출력
echo $TEST1

# World 출력
echo $TEST2

### 환경변수를 파일로 설정해서 사용해보기
cat > env_file
TEST1=Hello
TEST2=World
TEST3=Merong

docker run -it --env-file env_file --rm centos:latest

# Hello World Merong
echo $TEST1 $TEST2 $TEST3

컨테이너 시작

docker start [옵션] <컨테이너 식별자> [컨테이너 식별자]

지정할 수 있는 주요 옵션
옵션 설명
--attach, -a 표준 출력, 표준 오류 출력을 연다
--interactive, -i 컨테이너의 표준 입력을 연다

컨테이너 정지

docker stop [옵션] <컨테이너 식별자> [컨테이너 식별자]

지정할 수 있는 주요 옵션
옵션 설명
--time, -t 컨테이너의 정지 시간을 지정(기본값은 10초)

컨테이너 재시작

docker restart [옵션] <컨테이너 식별자> [컨테이너 식별자]

지정할 수 있는 옵션
옵션 설명
--time, -t 컨테이너의 재시작 시간을 지정(기본값은 10초)

컨테이너 삭제

docker container rm [옵션] <컨테이너 식별자> [컨테이너 식별자]

지정할 수 있는 주요 옵션
옵션 설명
--force, -f 실행 중인 컨테이너를 강제로 삭제
--volumes, -v 할당한 볼륨을 삭제

컨테이너 중단/재개

docker puase <컨테이너 식별자>

docker unpause <컨테이너 식별자>

profile
성장형 인간

0개의 댓글