본문 바로가기
운영체제/리눅스

(Docker)run 명령어 옵션

by Cloud_Park 2020. 2. 18.

Docker run옵션은  이미지를 컨테이너화 시키는 명령어이다.  기존에 이미지를 관리하고 이쁘게 만들었다면

실제로 실행할때 중요한 역할을하는 것이 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=”” 컨테이너 안의 프로세스가 실행될 디렉터리를 설정

'운영체제 > 리눅스' 카테고리의 다른 글

(Docker) registry volum  (0) 2020.02.18
(Docker) registry 대시보드  (0) 2020.02.18
(Docker) 기본 명령어  (0) 2020.02.18
(Docker) Private Registry 설정하기  (0) 2020.02.18
(docker) Docker registry 활용  (1) 2020.02.17