320x100
320x100

도커 컨테이너 실행 명령어 포맷

docker run [옵션] 이미지_식별자 [커맨드] [인자]

: 이미지 식별자의 경우 필수 요소이며 이미지 ID나

  레포지터리:태그 형식으로 작성

 

 

 

docker run 주요 옵션

-it 

: 표준 입력(stdin)을 활성화하며 컨테이너와 연결(attach)되어 있지 않더라도 표준 입력을 유지,  bash

: tty를 사용하여 터미널 bash를 사용하기 위한 옵션

 

-d

: 백그라운드로 컨테이너를 실행

 

--name

: 컨테이너의 이름을 부여하여 관리하기 쉽도록 설정

 

-e

: 컨테이너의 환경변수를 설정하기 위한 옵션

 

-p

: 포트포워딩을 위한 옵션

 

-v

: 호스트와 컨테이너간의 볼륨 설정

: 호스트의 특정 디렉터리를 컨테이너의 특정 경로로 마운트

 

-w

: 도커 파일의 WORKDIR 설정을 덮어쓰기 위한 옵션

 

--rm

: 컨테이너를 일회성으로 실행할때 주로 사용

: 컨테이너가 종료될때 컨테이너와 관련된 리소스까지 제거

 

 

 

 

 

 

도커 컨테이너 생성 옵션 (docker run 옵션 모음)

-a --attach=[]: 컨테이너에 표준 입력(stdin), 표준 출력(stdout), 표준 에러(stderr)를 연결
--attach=”stdin”
--add-host=[]  /etc/hosts에 호스트 이름과 IP 주소를 추가
--add-host=test:192.168.0.10
-c --cpu-shares=0: CPU 자원 분배 설정
기본 값은 1024
--cpu-shares=2048처럼 설정하면 기본 값 보다 두 배 많은 CPU 자원을 할당
 설정 값은 리눅스 커널의 cgroups
--cap-add=[] 컨테이너에서 cgroups의 특정 Capability를 사용 , ALL 도 가능
--cap-drop=[] 컨테이너에서 cgroups의 특정 Capability를 제외
--cidfile=”” cid 파일 경로를 설정
--cpuset 멀티코어 CPU에서 컨테이너가 실행될 코어를 설정
--cpuset=”0,1”처럼 설정하면 첫 번째, 두 번째 CPU 코어를 사용
--cpuset=”0-3”처럼 설정하면 첫 번째 CPU 코어부터 네 번째까지 사용
0이 첫번째인 것을 확인...
-d Detached 모드입니다. 보통 데몬 모드라고 부르며 컨테이너가 백그라운드로 실행
--device=[] --device=[]: 호스트의 장치를 컨테이너에서 사용할 수 있도록 연결
--device=”/dev/sda1:/dev/sda1”처럼 설정하면 호스트의 /dev/sda1 블록 장치를 컨테이너에서도 사용 가능
--dns=[] 컨테이너에서 사용할 DNS 서버를 설정
--dns-search=[] 컨테이너에서 사용할 DNS 검색 도메인을 설정
--dns-search=”test.com” 설정하면 처음으로 찾는다.
-e, --env=[] 컨테이너에 환경 변수를 설정 , 주로 설정 값이나 비밀번호를 전달할 때 사용한다.
e MYSQL_ROOT_PASSWORD=testpass
--entrypoint=”” Dockerfile의 ENTRYPOINT 설정을 무시하고 강제로 다른 값을 설정
--env-file=[] 컨테이너에 환경 변수가 설정된 파일을 적용
--env-file=”/etc/test.env”
--expose=[] 컨테이너의 포트를 호스트와 연결 ,외부에 노출 하지 않는다.
-h,
--hostname=""
컨테이너의 호스트 이름을 설정
-i,
--interactive=false
 표준 입력(stdin)을 활성화하며 컨테이너와 연결(attach)되어 있지 않더라도 표준 입력을 유지,  bash
--link=[] 컨테이너끼리 연결, <컨테이너 이름>:<별칭>
--lxc-conf=[] LXC 드라이버를 사용한다면 LXC 옵션을 설정
-m, --memory=”” 메모리 한계를 설정 , <숫자 단위> 형식이며 단위는 b, k, m, g
--memory=”3g”
--name 컨테이너에 이름을 설정
--net=”bridge” 컨테이너의 네트워크 모드를 설정
-P
--publish-all=false
호스트에 연결된 컨테이너의 모든 포트를 외부에 노출
-p, --publish=[] 특정 포트를 외부에 노출
IP 주소:호스트 포트:컨테이너 포트, 호스트에 네트워크 인터페이스가 여러 개이거나 IP 주소가 여러 개 일 때 사용
IP 주소::컨테이너 포트 ,호스트 포트를 설정하지 않으면 호스트의 포트 번호가 무작위로 설정
<컨테이너 포트> 컨테이너 포트만 설정하면 호스트의 포트 번호가 무작위로 설정
--privileged=false 컨테이너 안에서 호스트의 리눅스 커널 기능(Capability)을 모두 사용
--restart=””  컨테이너 안의 프로세스 종료 시 재시작 정책을 설정
no: 프로세스가 종료되더라도 컨테이너를 재시작하지 않습니다
on-failure: 프로세스의 Exit Code가 0이 아닐 때만 재시작
always: 프로세스의 Exit Code와 상관없이 재시작
--rm=false : 컨테이너 안의 프로세스가 종료되면 컨테이너를 자동으로 삭제
--security-opt=[] SELinux, AppArmor 옵션을 설정
--sig-proxy=true 모든 시그널을 프로세스에 전달
-t, --tty=false TTY 모드를 사용, Bash를 사용하려면 이 옵션을 설정 필수
-u 컨테이너가 실행될 리눅스 사용자 계정 이름 또는 UID를 설정
-v 데이터 볼륨을 설정
호스트와 공유할 디렉터리를 설정하여 파일을 컨테이너에 저장하지 않고 호스트에 바로 저장
<호스트 디렉터리>:<컨테이너 디렉터리>:<ro, rw>
--volumes-from=[] 데이터 볼륨 컨테이너를 연결, <컨테이너 이름, ID>:<ro, rw> 형식으로 설정
-w, --workdir=”” 컨테이너 안의 프로세스가 실행될 디렉터리를 설정

표 출처 : https://base-on.tistory.com/367

 

 

 

 

 

 

 

Refference

 

 

(Docker)run 명령어 옵션

Docker 에 run옵션은 이미지를 컨테이너화 시키는 명령어이다. 기존에 이미지를 관리하고 이쁘게 만들었다면 실제로 실행할때 중요한 역할을하는 것이 run옵션이다. 중요한 만큼이나 옵션이 무척

base-on.tistory.com

 

 

docker run 커맨드 사용법

Engineering Blog by Dale Seo

www.daleseo.com

 

300x250
728x90

'Container > Docker' 카테고리의 다른 글

도커 컨테이너 로깅  (0) 2021.08.24
도커 네트워크  (0) 2021.08.24
도커 컨테이너 포트포워딩  (0) 2021.08.23
도커 이미지 및 컨테이너 기초 [docker 기초]  (0) 2021.08.22
Docker에 대한 기본지식  (0) 2021.08.22