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 |