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 |