docker-run - 클라우드의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 docker-run 명령입니다.

프로그램:

이름


docker-run - 새 컨테이너에서 명령 실행

개요


도커 운영 [-a|--붙이다[=[]]] [--추가-호스트[=[]]] [--blkio-무게[=[BLKIO-웨이트]]]
[--blkio-무게-장치[=[]]] [--cpu 공유[=0]] [--캡 추가[=[]]] [--캡-드롭[=[]]]
[--cgroup-부모[=CGROUP-경로]] [--cid파일[=CID파일]] [--cpu 기간[=0]] [--cpu 할당량[=0]]
[--cpuset-cpus[=CPUSET-CPU]] [--cpuset-mems[=CPUSET-MEMS]] [-d|--분리하다]
[--분리 키[=[]]] [--장치[=[]]] [--장치 읽기-bps[=[]]] [--장치 읽기-ios[=[]]]
[--장치 쓰기 bps[=[]]] [--장치 쓰기 ios[=[]]] [--DNS[=[]]] [--dns-opt[=[]]]
[--dns-검색[=[]]] [-e|--env[=[]]] [--진입 지점[=진입 지점]] [--env 파일[=[]]]
[--폭로하다[=[]]] [--그룹 추가[=[]]] [-h|--호스트 이름[=호스트 이름]] [--도움] [-i|--인터렉티브]
[--ip[=IPv4-주소]] [--ip6[=IPv6-주소]] [--ipc[=IPC]] [--격리[=디폴트 값]]
[--커널 메모리[=커널 메모리]] [-l|--상표[=[]]] [--레이블 파일[=[]]] [--링크[=[]]]
[--로그 드라이버[=[]]] [--로그 옵션[=[]]] [-m|--메모리[=메모리]] [--mac 주소[=MAC 주소]]
[--메모리 예약[=메모리 예약]] [--메모리 스왑[=제한]]
[--메모리 교환[=메모리 교환]] [--이름[=이름]] [--그물[="다리"]]
[--net-별칭[=[]]] [--oom-kill-비활성화] [--oom 점수 조정[=0]] [-P|--모두 게시]
[-p|--게시[=[]]] [--pid[=[]]] [--특권] [--읽기 전용] [--재시작[=재시작]] [--NS]
[--보안 옵션[=[]]] [--정지 신호[=신호]] [--shm-크기[=[]]] [--sig 프록시[=참된]]
[-t|--티] [--tmpfs[=[컨테이너 디렉토리[: ]]] [-u|--사용자[=USER]] [--ulimit[=[]]]
[--uts[=[]]] [-v|--용량[=[[호스트 디렉터리:]컨테이너 디렉터리[:옵션]]]]
[--볼륨 드라이버[=드라이버]] [--볼륨-에서[=[]]] [-w|--workdir[=작업 디렉터리]] 이미지 [명령어]
[아그...]

기술


새 컨테이너에서 프로세스를 실행합니다. 도커 운영 자체 파일 시스템으로 프로세스를 시작합니다.
자체 네트워킹 및 자체 격리된 프로세스 트리입니다. 프로세스를 시작하는 IMAGE
컨테이너에서 실행될 프로세스와 관련된 기본값을 정의할 수 있습니다.
네트워킹 등을 노출하지만 도커 운영 운영자에게 최종 제어권을 부여하거나
이미지에서 컨테이너를 시작하는 관리자입니다. 그런 이유로 도커 운영 더있다
다른 Docker 명령보다 옵션.

IMAGE가 아직 로드되지 않은 경우 도커 운영 IMAGE를 가져오고 모든 이미지
동일한 방식으로 저장소에서 종속성 실행 도커 당겨 이미지, 그 전에
해당 이미지에서 컨테이너를 시작합니다.

옵션


-a, --붙이다=[]
STDIN, STDOUT 또는 STDERR에 연결합니다.

전경 모드에서(기본값은 -d 지정되지 않음), 도커 운영 시작할 수 있습니다
컨테이너에서 프로세스하고 콘솔을 프로세스의 표준 입력, 출력,
및 표준 오류. TTY인 것처럼 가장할 수도 있습니다(이것은 대부분의 명령줄
실행 파일 기대) 신호를 전달합니다. 그만큼 -a stdin 각각에 대해 옵션을 설정할 수 있으며,
stdout 및 stderr.

--추가-호스트=[]
사용자 지정 호스트-IP 매핑 추가(host:ip)

/etc/hosts에 한 줄을 추가합니다. 형식은 호스트 이름:ip입니다. 그만큼 --추가-호스트 옵션을 설정할 수 있습니다
여러 번.

--blkio-무게=0
블록 IO 가중치(상대 가중치)는 10에서 1000 사이의 가중치 값을 허용합니다.

--blkio-무게-장치=[]
블록 IO 가중치(상대 장치 가중치, 형식: DEVICE_NAME:무게).

--cpu 공유=0
CPU 공유(상대 가중치)

기본적으로 모든 컨테이너는 동일한 비율의 CPU 주기를 갖습니다. 이 비율은
모든 가중치에 상대적인 컨테이너의 CPU 공유 가중치를 변경하여 수정
실행 중인 다른 컨테이너.

기본값인 1024에서 비율을 수정하려면 --cpu 공유 설정할 플래그
가중치는 2 이상입니다.

이 비율은 CPU 집약적인 프로세스가 실행 중인 경우에만 적용됩니다. 작업이 있을 때
한 컨테이너는 유휴 상태이고 다른 컨테이너는 남은 CPU 시간을 사용할 수 있습니다. 실제 금액
CPU 시간은 시스템에서 실행 중인 컨테이너 수에 따라 달라집니다.

예를 들어, 1024개의 컨테이너를 생각해 보십시오. 하나는 CPU 점유율이 XNUMX이고 다른 두 개는
512의 cpu-share 설정. 세 컨테이너 모두의 프로세스가
CPU, 첫 번째 컨테이너는 총 CPU 시간의 50%를 받습니다. 네번째 추가하면
cpu 점유율이 1024인 컨테이너에서 첫 번째 컨테이너는 CPU의 33%만 차지합니다. 그만큼
나머지 컨테이너는 CPU의 16.5%, 16.5% 및 33%를 받습니다.

멀티 코어 시스템에서 CPU 시간의 공유는 모든 CPU 코어에 분산됩니다. 설사
컨테이너는 CPU 시간의 100% 미만으로 제한되며 각 개인의 100%를 사용할 수 있습니다.
CPU 코어.

예를 들어 XNUMX개 이상의 코어가 있는 시스템을 고려하십시오. 하나의 컨테이너를 시작하면 {C0}
-c=512 하나의 프로세스와 다른 컨테이너 실행 {C1}-c=1024 XNUMX개를 달리다
이로 인해 다음과 같은 CPU 공유 분할이 발생할 수 있습니다.

PID 컨테이너 CPU CPU 점유율
100 {C0} 0 CPU100의 0%
101 {C1} 1 CPU100의 1%
102 {C1} 2 CPU100의 2%

--캡 추가=[]
Linux 기능 추가

--캡-드롭=[]
Linux 기능 중단

--cgroup-부모= ""
컨테이너의 cgroup이 생성될 cgroup의 경로입니다. 만약 경로
절대적이지 않으면 경로는 init의 cgroup 경로에 상대적인 것으로 간주됩니다.
프로세스. Cgroup이 아직 없는 경우 생성됩니다.

--cid파일= ""
파일에 컨테이너 ID 쓰기

--cpu 기간=0
CPU CFS(Completely Fair Scheduler) 기간 제한

컨테이너의 CPU 사용량을 제한합니다. 이 플래그는 컨테이너의 CPU를 제한하도록 커널에 알립니다.
지정한 기간만큼 사용합니다.

--cpuset-cpus= ""
실행을 허용할 CPU(0-3, 0,1)

--cpuset-mems= ""
실행을 허용할 메모리 노드(MEM)입니다(0-3, 0,1). NUMA에만 유효
시스템.

시스템에 0개의 메모리 노드(3-XNUMX)가 있는 경우 다음을 사용하십시오. --cpuset-mems=0,1 그런 다음 처리
Docker 컨테이너에서 처음 두 메모리 노드의 메모리만 사용합니다.

--cpu 할당량=0
CPU CFS(Completely Fair Scheduler) 할당량 제한

컨테이너의 CPU 사용량을 제한합니다. 기본적으로 컨테이너는 전체 CPU 리소스로 실행됩니다.
이 플래그는 컨테이너의 CPU 사용량을 지정한 할당량으로 제한하도록 커널에 지시합니다.

-d, --분리하다=참된|그릇된
분리 모드: 백그라운드에서 컨테이너를 실행하고 새 컨테이너 ID를 인쇄합니다. 그만큼
기본값은 그릇된.

언제든지 실행할 수 있습니다. 도커 ps 실행중인 목록을 보려면 다른 쉘에서
용기. 다음을 사용하여 분리된 컨테이너에 다시 연결할 수 있습니다. 도커 붙이다. 당신이 선택하는 경우
분리 모드에서 컨테이너를 실행하면 -rm 옵션을 선택합니다.

tty 모드에서 연결되면 컨테이너에서 분리할 수 있습니다(실행 중인 상태로 둘 수 있음).
구성 가능한 키 시퀀스를 사용합니다. 기본 시퀀스는 CTRL-p CTRL-q. 구성
를 사용하는 키 시퀀스 --분리 키 옵션 또는 구성 파일. 보다
구성-json(5) 구성 파일 사용에 대한 문서.

--분리 키= ""
컨테이너 분리를 위한 키 시퀀스를 재정의합니다. 형식은 단일 문자입니다. [아즈]
or Ctrl 키- 어디에 중 하나이다: AZ, @, ^, [, , or _.

--장치=[]
컨테이너에 호스트 장치 추가(예: --device=/dev/sdc:/dev/xvdc:rwm)

--장치 읽기-bps=[]
장치의 읽기 속도 제한(예: --device-read-bps=/dev/sda:1mb)

--장치 읽기-ios=[]
장치의 읽기 속도 제한(예: --device-read-iops=/dev/sda:1000)

--장치 쓰기 bps=[]
장치에 대한 쓰기 속도 제한(예: --device-write-bps=/dev/sda:1mb)

--장치 쓰기 ios=[]
장치의 쓰기 속도 제한(예: --device-write-iops=/dev/sda:1000)

--dns-검색=[]
사용자 지정 DNS 검색 도메인 설정(검색을 설정하지 않으려면 --dns-search=를 사용하십시오.
도메인)

--dns-opt=[]
사용자 지정 DNS 옵션 설정

--DNS=[]
사용자 지정 DNS 서버 설정

이 옵션은 컨테이너에 전달된 DNS 구성을 재정의하는 데 사용할 수 있습니다.
일반적으로 호스트 DNS 구성이 컨테이너에 대해 유효하지 않은 경우에 필요합니다.
(예: 127.0.0.1). 이런 경우에는 --DNS 플래그는 모든 실행에 필요합니다.

-e, --env=[]
환경 변수 설정

이 옵션을 사용하면 다음에 사용할 수 있는 임의의 환경 변수를 지정할 수 있습니다.
컨테이너 내부에서 실행될 프로세스.

--진입 지점= ""
이미지의 기본 ENTRYPOINT를 덮어씁니다.

이 옵션을 사용하면 이미지에 설정된 기본 진입점을 덮어쓸 수 있습니다.
Dockerfile. 이미지의 ENTRYPOINT는 COMMAND와 유사합니다.
컨테이너가 시작될 때 실행할 수 있지만 (의도적으로) 실행하기가 더 어렵습니다.
우세하다. ENTRYPOINT는 컨테이너에 기본 특성 또는 동작을 제공하므로
ENTRYPOINT를 설정하면 마치 바이너리인 것처럼 컨테이너를 실행할 수 있습니다.
기본 옵션이며 COMMAND를 통해 더 많은 옵션을 전달할 수 있습니다. 그러나 때로는
연산자는 컨테이너 내부에서 다른 것을 실행하려고 할 수 있으므로
런타임 시 기본 ENTRYPOINT를 사용하여 --진입 지점 그리고 새로운 것을 지정하는 문자열
진입 지점.

--env 파일=[]
한 줄로 구분된 환경 변수 파일 읽기

--폭로하다=[]
포트 또는 포트 범위(예: --expose=3300-3310) 노출은 Docker에
컨테이너는 런타임에 지정된 네트워크 포트에서 수신 대기합니다. Docker는 이 정보를 사용합니다.
링크를 사용하여 컨테이너를 상호 연결하고 호스트 시스템에서 포트 리디렉션을 설정합니다.

--그룹 추가=[]
실행할 그룹을 추가하세요.

-h, --호스트 이름= ""
컨테이너 호스트 이름

컨테이너 내부에서 사용할 수 있는 컨테이너 호스트 이름을 설정합니다.

--도움
사용 명세서 인쇄

-i, --인터렉티브=참된|그릇된
연결되지 않은 경우에도 STDIN을 열어 두십시오. 기본값은 그릇된.

true로 설정하면 연결되지 않은 경우에도 stdin을 열린 상태로 유지합니다. 기본값은 거짓입니다.

--ip= ""
컨테이너의 인터페이스 IPv4 주소를 설정합니다(예: 172.23.0.9).

와 함께만 사용할 수 있습니다. --그물 사용자 정의 네트워크용

--ip6= ""
컨테이너의 인터페이스 IPv6 주소를 설정합니다(예: 2001:db8::1b99).

와 함께만 사용할 수 있습니다. --그물 사용자 정의 네트워크용

--ipc= ""
기본값은 컨테이너에 대한 개인 IPC 네임스페이스(POSIX SysV IPC)를 만드는 것입니다.
'컨테이너: ': 공유된 다른 컨테이너를 재사용합니다.
메모리, 세마포어 및 메시지 큐
'호스트': 호스트 공유 메모리, 세마포어 및 메시지를 사용합니다.
컨테이너 내부의 큐. 참고: 호스트 모드는 컨테이너에 로컬에 대한 전체 액세스 권한을 부여합니다.
공유 메모리이므로 안전하지 않은 것으로 간주됩니다.

--격리="디폴트 값"
격리는 컨테이너에서 사용하는 격리 기술의 유형을 지정합니다.

-l, --상표=[]
컨테이너에 대한 메타데이터 설정(예: --label com.example.key=value)

--커널 메모리= ""
커널 메모리 제한(형식: [ ], 여기서 단위 = b, k, m 또는 g)

컨테이너에서 사용할 수 있는 커널 메모리를 제한합니다. 제한이 0으로 지정된 경우(
사용 --커널 메모리), 컨테이너의 커널 메모리는 제한되지 않습니다. 다음을 지정하는 경우
제한에 따라 운영 체제 페이지 크기의 배수로 반올림될 수 있으며
그 가치는 수백만 조에 달하는 매우 클 수 있습니다.

--레이블 파일=[]
한 줄로 구분된 레이블 파일 읽기

--링크=[]
다음 형식으로 다른 컨테이너에 대한 링크를 추가합니다. :별칭 또는 그냥 ~에
이 경우 별칭은 이름과 일치합니다.

운영자가 사용하는 경우 --링크 새 클라이언트 컨테이너를 시작할 때 클라이언트
컨테이너는 개인 네트워킹 인터페이스를 통해 노출된 포트에 액세스할 수 있습니다. 도커가 설정합니다
클라이언트 컨테이너의 일부 환경 변수는 어떤 인터페이스와
사용할 포트.

--로그 드라이버="json 파일|syslog|저널링|젤프|유창한|awslogs|튀다|없음"
컨테이너용 로깅 드라이버. 기본값은 데몬에 의해 정의됩니다. --로그 드라이버 깃발.
경고다음 도커 로그 명령은 다음에 대해서만 작동합니다. json 파일
저널링 로깅 드라이버.

--로그 옵션=[]
로깅 드라이버 특정 옵션.

-m, --메모리= ""
메모리 제한(형식: [ ], 여기서 단위 = b, k, m 또는 g)

컨테이너에 사용 가능한 메모리를 제한할 수 있습니다. 호스트가 스왑을 지원하는 경우
메모리, 그 다음 -m 메모리 설정은 실제 RAM보다 클 수 있습니다. 한계가 0인 경우
지정(사용하지 않음 -m), 컨테이너의 메모리는 제한되지 않습니다. 실제 한도는 다음과 같을 수 있습니다.
운영 체제 페이지 크기의 배수로 반올림됩니다(값은
크면 수백만 조).

--메모리 예약= ""
메모리 소프트 제한(형식: [ ], 여기서 단위 = b, k, m 또는 g)

메모리 예약 설정 후 시스템이 메모리 경합 또는 메모리 부족을 감지하면,
컨테이너는 예약에 따라 소비를 제한해야 합니다. 그래서 당신은해야
항상 아래 값을 설정하십시오 --메모리, 그렇지 않으면 하드 제한이 우선합니다. 에 의해
기본적으로 메모리 예약은 메모리 제한과 동일합니다.

--메모리 스왑="한계"
메모리에 스왑을 더한 것과 같은 제한 값입니다. 와 함께 사용해야 합니다. -m (--메모리) 깃발. NS
교환 제한 항상 다음보다 커야 합니다. -m (--메모리) 값.

형식 제한 is [ ]. 단위 수 b (바이트), k (킬로바이트), m
(메가바이트) 또는 g (기가바이트). 단위를 지정하지 않으면 b 사용. LIMIT를 다음으로 설정 -1
무제한 스왑을 활성화합니다.

--mac 주소= ""
컨테이너 MAC 주소(예: 92:d0:c6:0a:29:33)

이더넷 네트워크의 MAC 주소는 고유해야 합니다. IPv6 링크 로컬
주소는 RFC4862에 따른 장치의 MAC 주소를 기반으로 합니다.

--이름= ""
컨테이너에 이름 할당

운영자는 세 가지 방법으로 컨테이너를 식별할 수 있습니다.
UUID 긴 식별자
(“f78375b1c487e03c9438c729345e54db9d20cfa2ac1fc3494b6eb60872e74778”)
UUID 짧은 식별자("f78375b1c487")
이름("요나")

UUID 식별자는 Docker 데몬에서 가져오고 이름이
컨테이너 --이름 그런 다음 데몬은 임의의 문자열 이름도 생성합니다. 그 이름은
링크를 정의할 때 유용합니다(참조 --링크) (또는 식별이 필요한 다른 장소
컨테이너). 이는 백그라운드 및 전경 Docker 컨테이너 모두에서 작동합니다.

--그물="다리"
컨테이너의 네트워크 모드 설정
'bridge': 기본 Docker에 네트워크 스택을 만듭니다.
다리
'없음': 네트워킹 없음
'컨테이너: ': 다른 컨테이너의 네트워크를 재사용
스택
'호스트': Docker 호스트 네트워크 스택을 사용합니다. 참고: 호스트
모드는 컨테이너에 D-버스와 같은 로컬 시스템 서비스에 대한 전체 액세스 권한을 부여하고
따라서 안전하지 않은 것으로 간주됩니다.
' | ': 사용자 정의에 연결
네트워크

--net-별칭=[]
컨테이너에 대한 네트워크 범위 별칭 추가

--oom-kill-비활성화=참된|그릇된
컨테이너에 대해 OOM Killer를 비활성화할지 여부입니다.

--oom 점수 조정= ""
컨테이너에 대한 호스트의 OOM 기본 설정 조정(-1000에서 1000까지 허용)

-P, --모두 게시=참된|그릇된
노출된 모든 포트를 호스트 인터페이스의 임의 포트에 게시합니다. 기본값은 그릇된.

true로 설정하면 노출된 모든 포트를 호스트 인터페이스에 게시합니다. 기본값은 거짓입니다.
연산자가 -P(또는 -p)를 사용하는 경우 Docker는 노출된 포트를
호스트와 포트는 호스트에 도달할 수 있는 모든 클라이언트에서 사용할 수 있습니다. -P를 사용할 때,
Docker는 노출된 모든 포트를 호스트 내의 임의의 포트에 바인딩합니다. 순식간의 포트
범위 에 의해 정의 /proc/sys/net/ipv4/ip_local_port_range. 사이의 매핑을 찾으려면
호스트 포트와 노출된 포트를 사용하려면 도커 포트.

-p, --게시=[]
컨테이너의 포트 또는 포트 범위를 호스트에 게시합니다.

체재: ip:호스트포트:컨테이너포트 | ip::컨테이너포트 | 호스트포트:컨테이너포트 |
컨테이너 포트 hostPort와 containerPort 모두 포트 범위로 지정할 수 있습니다. 언제
둘 다에 대한 범위를 지정하면 범위의 컨테이너 포트 수가 일치해야 합니다.
범위에 있는 호스트 포트의 수입니다. (예: 도커 운영 -p 1234-1236 : 1222-1224 --이름
thisWorks -t 비지 박스 하지만 도커 운영 -p 1230-1236 : 1230-1240 --이름
RangeContainerPortsBiggerThanRangeHostPorts -t 비지 박스) IP 사용: 도커 운영 -p
127.0.0.1:$HOSTPORT:$컨테이너포트 --이름 콘테이너 -t 이미지 도커 포트 볼 수
실제 매핑: 도커 포트 콘테이너 $컨테이너포트

--pid=주인
컨테이너의 PID 모드 설정
주인: 컨테이너 내부에서 호스트의 PID 네임스페이스를 사용합니다.
참고: 호스트 모드는 컨테이너에 로컬 PID에 대한 전체 액세스 권한을 부여하므로
안전하지 않은 것으로 간주됩니다.

--uts=주인
컨테이너의 UTS 모드 설정
주인: 컨테이너 내부에서 호스트의 UTS 네임스페이스를 사용합니다.
참고: 호스트 모드는 컨테이너에 호스트의 호스트 이름을 변경할 수 있는 액세스 권한을 부여하며
따라서 안전하지 않은 것으로 간주됩니다.

--특권=참된|그릇된
이 컨테이너에 확장된 권한을 부여합니다. 기본값은 그릇된.

기본적으로 Docker 컨테이너는 "권한 없음"(=false)이며 예를 들어 다음을 실행할 수 없습니다.
Docker 컨테이너 내부의 Docker 데몬입니다. 이는 기본적으로 컨테이너가
모든 장치에 액세스할 수 있습니다. "특권" 컨테이너에는 모든 장치에 대한 액세스 권한이 부여됩니다.

연산자가 실행될 때 도커 운영 --특권, Docker는 모든
컨테이너를 허용하도록 AppArmor에서 일부 구성을 설정합니다.
컨테이너 외부에서 실행되는 프로세스와 거의 동일한 호스트 액세스
숙주.

--읽기 전용=참된|그릇된
컨테이너의 루트 파일 시스템을 읽기 전용으로 마운트합니다.

기본적으로 컨테이너는 프로세스가 쓰기를 허용하는 쓰기 가능한 루트 파일 시스템을 갖습니다.
어디서나 파일. 지정하여 --읽기 전용 플래그 컨테이너는 루트를 갖습니다.
모든 쓰기를 금지하는 읽기 전용으로 마운트된 파일 시스템.

--재시작="아니"
컨테이너가 종료될 때 적용할 재시작 정책(no, on-failure[:max-retry], 항상,
멈추지 않는 한).

--NS=참된|그릇된
종료 시 컨테이너를 자동으로 제거합니다(-d와 호환되지 않음). 기본값은
그릇된.

--보안 옵션=[]
보안 옵션

"label:user:USER" : 컨테이너의 레이블 사용자를 설정합니다.
"label:role:ROLE" : 컨테이너의 레이블 역할을 설정합니다.
"label:type:TYPE" : 컨테이너의 라벨 유형을 설정합니다.
"label:level:LEVEL" : 컨테이너의 레이블 수준을 설정합니다.
"label:disable" : 컨테이너에 대한 레이블 제한을 끕니다.

--정지 신호=시그텀
컨테이너를 중지하라는 신호입니다. 기본값은 SIGTERM입니다.

--shm-크기= ""
크기 /dev/shm. 형식은 .
번호 보다 커야합니다 0. 단위는 선택 사항이며 b (바이트), k (킬로바이트),
m(메가바이트) 또는 g (기가바이트).
단위를 생략하면 시스템에서 바이트를 사용합니다. 크기를 완전히 생략하면 시스템에서
사용 64m.

--sig 프록시=참된|그릇된
프록시는 프로세스에 대한 신호를 수신했습니다(TTY 모드가 아닌 경우에만 해당). SIGCHLD, SIGSTOP 및
SIGKILL은 프록시되지 않습니다. 기본값은 참된.

--메모리 교환= ""
컨테이너의 메모리 교환 동작을 조정합니다. 0에서 100 사이의 정수를 허용합니다.

-t, --티=참된|그릇된
의사 TTY를 할당합니다. 기본값은 그릇된.

true로 설정하면 Docker는 pseudo-tty를 할당하고 모든 표준 입력에 연결할 수 있습니다.
컨테이너. 예를 들어 일회용 대화형 셸을 실행하는 데 사용할 수 있습니다. 그만큼
기본값은 거짓입니다.

XNUMXD덴탈의 -t 옵션은 도커 클라이언트 표준 입력의 리디렉션과 호환되지 않습니다.

--tmpfs=[] tmpfs 마운트 생성

임시 파일 시스템 마운트(tmpfs) 컨테이너에 마운트합니다. 예를 들면 다음과 같습니다.

$ 도커 실행 -d --tmpfs / TMP:rw,크기=787448k,모드=1777 my_image

이 명령은 tmpfs at / TMP 컨테이너 내. 지원되는 마운트 옵션은
Linux 기본값과 동일 마운트 플래그. 옵션을 지정하지 않으면 시스템이
다음 옵션을 사용합니다. rw,noexec,nosuid,nodev,크기=65536k.

-u, --사용자= ""
사용된 사용자 이름 또는 UID를 설정하고 선택적으로 지정된 그룹 이름 또는 GID를 설정합니다.
명령.

다음 예는 모두 유효합니다.
--user [사용자 | 사용자:그룹 | 아이디 | uid:gid | 사용자:gid | uid:그룹 ]

이 인수가 없으면 명령이 컨테이너에서 루트로 실행됩니다.

--ulimit=[]
Ulimit 옵션

-v|--용량[=[[호스트 디렉터리:]컨테이너 디렉터리[:옵션]]]
바인드 마운트를 만듭니다. 지정하면, -v /호스트 디렉터리:/컨테이너 디렉터리, 도커
바인드 마운트 /호스트-디렉토리 호스트에서 /컨테이너-디렉토리 도커에서
컨테이너. 'HOST-DIR'이 생략되면 Docker는 자동으로 새
호스트의 볼륨. NS 옵션 쉼표로 구분된 목록이며 다음과 같을 수 있습니다.

· [rw|ro]

· [지|지]

· [[r]공유|[r]노예|[r]비공개]

XNUMXD덴탈의 컨테이너 디렉토리 다음과 같은 절대 경로여야 합니다. /src/문서. 그만큼 호스트 디렉터리 될 수 있습니다
절대 경로 또는 name 값. NS name 값은 영숫자로 시작해야 하며,
다음 a-z0-9, _ (밑줄), . (마침표) 또는 - (하이픈). 절대 경로는 다음으로 시작합니다.
a / (슬래시).

당신이 제공하는 경우 호스트 디렉터리 그것은 절대 경로이며 Docker는 사용자가 지정한 경로에 바인드 마운트합니다.
지정합니다. 당신이 제공하는 경우 name, Docker는 이를 통해 명명된 볼륨을 생성합니다. name. 예를 들어,
둘 중 하나를 지정할 수 있습니다. / foo or A에 대한 호스트 디렉터리 값. 공급하는 경우 / foo 가치
Docker는 바인드 마운트를 생성합니다. 공급하는 경우 사양, Docker는 명명된
음량.

여러 개를 지정할 수 있습니다. -v 컨테이너에 하나 이상의 마운트를 마운트하는 옵션. 사용
다른 컨테이너에 이러한 동일한 마운트를 지정하려면 --볼륨-에서 옵션도.

당신은 추가 할 수 있습니다 :로 or :rw 볼륨에 접미사를 붙여 읽기 전용 또는 읽기-쓰기 모드로 마운트합니다.
각기. 기본적으로 볼륨은 읽기-쓰기로 마운트됩니다. 예를 참조하십시오.

SELinux와 같은 레이블 지정 시스템에서는 볼륨 콘텐츠에 적절한 레이블을 배치해야 합니다.
컨테이너에 장착. 레이블이 없으면 보안 시스템이 프로세스를 방해할 수 있습니다.
콘텐츠를 사용하지 못하도록 컨테이너 내부에서 실행됩니다. 기본적으로 Docker는 변경되지 않습니다.
OS에서 설정한 레이블.

컨테이너 컨텍스트에서 레이블을 변경하려면 두 개의 접미사 중 하나를 추가할 수 있습니다. :z or :Z
볼륨 마운트. 이러한 접미사는 Docker에 공유된 파일 개체의 레이블을 다시 지정하도록 지시합니다.
볼륨. NS z 옵션은 두 개의 컨테이너가 볼륨 콘텐츠를 공유한다고 Docker에 알려줍니다. 로
결과적으로 Docker는 공유 콘텐츠 레이블로 콘텐츠에 레이블을 지정합니다. 공유 볼륨 레이블 허용
콘텐츠를 읽고 쓰는 모든 컨테이너. NS Z 옵션은 Docker가 콘텐츠에 레이블을 지정하도록 지시합니다.
비공개 비공유 레이블. 현재 컨테이너만 프라이빗 볼륨을 사용할 수 있습니다.

기본적으로 바인드 탑재 볼륨은 사설. 이는 컨테이너 내부에서 수행되는 모든 마운트를 의미합니다.
호스트에 표시되지 않으며 그 반대의 경우도 마찬가지입니다. 다음을 지정하여 이 동작을 변경할 수 있습니다.
볼륨 마운트 전파 속성. 볼륨 만들기 공유 해당 볼륨에서 수행된 마운트
내부 컨테이너는 호스트에서 볼 수 있으며 그 반대의 경우도 마찬가지입니다. 볼륨 만들기 노예
단방향 마운트 전파 및 해당 볼륨 아래의 호스트에서 수행되는 마운트는
컨테이너 내부에서 볼 수 있지만 그 반대는 아닙니다.

볼륨의 마운트 전파 속성을 제어하려면 다음을 사용할 수 있습니다. :[r]공유, :[r]슬레이브 or
:[r]비공개 전파 플래그. 바인드 마운트에 대해서만 전파 속성을 지정할 수 있습니다.
볼륨이 아닌 내부 볼륨이나 명명된 볼륨이 아닙니다. 마운트 전파가 작동하려면
소스 마운트 포인트(소스 디렉토리가 마운트된 마운트 포인트)는 권한이 있어야 합니다.
전파 속성. 공유 볼륨의 경우 소스 마운트 지점을 공유해야 합니다. 그리고
슬레이브 볼륨, 소스 마운트는 공유 또는 슬레이브여야 합니다.

df 소스 마운트를 파악한 다음 사용 찾기 -o
대상,전파 소스의 전파 특성을 파악하기 위해
산. 만약에 찾기 유틸리티를 사용할 수 없으면 소스에 대한 마운트 항목을 볼 수 있습니다.
마운트 포인트 /proc/self/마운트정보. 보다 선택 분야 그리고 어떤 선전이 있는지 확인하십시오
속성이 지정됩니다. 공유:X 마운트는 공유, 마스터:X 마운트는 노예
아무 것도 없으면 마운트가 있음을 의미합니다. 사설.

마운트 포인트의 전파 속성을 변경하려면 다음을 사용하십시오. 마운트 명령. 예를 들어 하나의 경우
마운트 소스 디렉토리를 바인딩하려고 합니다. / foo 하나는 할 수 있습니다 마운트 --묶다 / foo / foo마운트
--비공개로 설정 --make-공유 / foo. 이것은 /foo를 공유 마운트 지점.
또는 소스 마운트의 전파 속성을 직접 변경할 수 있습니다. 말하다 / is
소스 마운트 / foo을 사용한 다음 마운트 --make-공유 / 변환하다 /공유 산.

주의 사항: systemd를 사용하여 Docker 데몬의 시작 및 중지를 관리하는 경우
systemd 단위 파일에는 Docker에 대한 마운트 전파를 제어하는 ​​옵션이 있습니다.
데몬 자체, 호출 마운트 플래그. 이 설정의 값으로 인해 Docker가 실행되지 않을 수 있습니다.
마운트 지점에서 수행된 마운트 전파 변경 사항을 참조하십시오. 예를 들어 이 값이
is 노예, 사용하지 못할 수 있습니다. 공유 or 공유됨 볼륨에 대한 전파.

--볼륨 드라이버= ""
컨테이너의 볼륨 드라이버. 이 드라이버는 다음 중 하나에서 지정된 볼륨을 생성합니다.
Dockerfile의 VOLUME 지시 또는 도커 운영 -v 깃발.
만나다 도커 볼륨 생성(1) 자세한 사항.

--볼륨-에서=[]
지정된 컨테이너에서 볼륨 마운트

소스 컨테이너에서 이미 마운트된 볼륨을 다른 컨테이너에 마운트
컨테이너. 소스의 컨테이너 ID를 제공해야 합니다. 공유하려면
볼륨, 사용 --볼륨-에서 실행할 때 옵션
대상 컨테이너. 소스 컨테이너가 있어도 볼륨을 공유할 수 있습니다.
실행되고 있지 않습니다.

기본적으로 Docker는 동일한 모드(읽기-쓰기 또는
읽기 전용) 소스 컨테이너에 마운트되기 때문입니다. 선택적으로, 당신은
컨테이너 ID에 :로 or
:rw 예어.

원본 컨테이너의 볼륨 위치가 겹치는 경우
데이터가 대상 컨테이너에 있으면 볼륨이 숨겨집니다.
대상에 대한 해당 데이터.

-w, --workdir= ""
컨테이너 내부의 작업 디렉토리

컨테이너 내에서 바이너리를 실행하기 위한 기본 작업 디렉토리는 루트입니다.
디렉토리(/). 개발자는 Dockerfile WORKDIR을 사용하여 다른 기본값을 설정할 수 있습니다.
지침. 운영자는 다음을 사용하여 작업 디렉토리를 재정의할 수 있습니다. -w 옵션을 선택합니다.

출구 Status


의 종료 코드 도커 운영 컨테이너 실행에 실패한 이유에 대한 정보를 제공하거나
나온 이유. 언제 도커 운영 XNUMX이 아닌 코드로 종료하면 종료 코드는 다음을 따릅니다.
chroot 표준, 아래 참조:

125 if 전에, 오류 is 도커 악마 그 자체

$ docker 실행 --foo busybox; 에코 $?
# 플래그가 제공되었지만 정의되지 않음: --foo
'docker run --help'를 참조하십시오.
125

126 if 전에, 포함 명령 be 호출

$ docker는 busybox를 실행합니다. / 기타; 에코 $?
# 임원: "/ 기타": 권한이 거부되었습니다.
docker: 데몬의 오류 응답: 포함된 명령을 호출할 수 없습니다.
126

127 if 전에, 포함 명령 be 발견

$ docker 실행 busybox foo; 에코 $?
# exec: "foo": $PATH에서 실행 파일을 찾을 수 없음
docker: 데몬의 오류 응답: 포함된 명령을 찾을 수 없거나 존재하지 않습니다.
127

출구 암호 of 포함 명령 그렇지 않으면

$ docker는 busybox를 실행합니다. / 빈 / SH -c '출구 3'
# 3

사용 예


달리는 컨테이너 in 읽기 전용 모드


컨테이너 이미지 개발 중에 컨테이너는 종종 이미지 콘텐츠에 써야 합니다.
패키지 설치 / usr, 예를 들어. 프로덕션 환경에서 애플리케이션은 거의 필요하지 않습니다.
이미지에 씁니다. 컨테이너 애플리케이션이 파일에 기록해야 하는 경우 볼륨에 기록
전혀 시스템. 애플리케이션을 읽기 전용 모드로 실행하여 보안을 강화할 수 있습니다.
--read-only 스위치를 사용합니다. 이는 컨테이너 이미지가 수정되지 않도록 보호합니다. 읽다
컨테이너만 여전히 임시 데이터를 작성해야 할 수 있습니다. 이를 처리하는 가장 좋은 방법은 다음과 같습니다.
tmpfs 디렉토리 마운트 / 운영 그리고 /tmp.

# 도커 실행 --읽기 전용 --tmpfs / 운영 --tmpfs / TMP -i -t 페도라 / bin / bash

노출 기록 메시지 전에, 컨테이너 전에, 호스트의 기록


컨테이너에 기록된 메시지를 호스트의
syslog/journal 다음과 같이 /dev/log 디렉토리를 바인드 마운트해야 합니다.

# docker run -v /dev/log:/dev/log -i -t fedora / bin / bash

컨테이너 내부에서 로그에 메시지를 전송하여 이를 테스트할 수 있습니다.

(bash)# 로거 "내 컨테이너에서 안녕하세요"

그런 다음 종료하고 저널을 확인하십시오.

# 이탈

# journalctl -b | grep 안녕하세요

이것은 로거로 전송된 메시지를 나열해야 합니다.

첨부 or 배우기 표준, 표준 출력, STDERR


-a를 지정하지 않으면 Docker는 모든 항목(stdin,stdout,stderr)을 첨부합니다.
다음과 같이 대신 연결하고 싶습니다.

# docker run -a stdin -a stdout -i -t 페도라 / bin / bash

공유 IPC 사이에 용기


shm_server.c 사용: ⟨https://www.cs.cf.ac.uk/Dave/C/node27.html⟩

지원 --ipc=호스트 방법:

호스트는 7개의 pid가 첨부된 공유 메모리 세그먼트를 보여줍니다. 이는 httpd에서 발생합니다.

$ sudo ipcs -m

------ 공유 메모리 세그먼트 --------
키 shmid 소유자 권한 바이트 nattch 상태
0x01128e25 0 루트 600 1000 7

이제 일반 컨테이너를 실행하면 공유 메모리 세그먼트가 올바르게 표시되지 않습니다.
주인:

$ 도커 실행 -it shm ipcs -m

------ 공유 메모리 세그먼트 --------
키 shmid 소유자 권한 바이트 nattch 상태

새로운 컨테이너를 실행 --ipc=호스트 옵션을 선택하면 이제 공유 메모리 세그먼트가 표시됩니다.
호스트 httpd에서:

$ docker run -it --ipc=호스트 shm ipcs -m

------ 공유 메모리 세그먼트 --------
키 shmid 소유자 권한 바이트 nattch 상태
0x01128e25 0 루트 600 1000 7

지원 --ipc=컨테이너:CONTAINERID 방법:

프로그램으로 컨테이너를 시작하여 공유 메모리 세그먼트를 생성합니다.

$ docker run -it shm bash
$ sudo shm/shm_server
$ sudo ipcs -m

------ 공유 메모리 세그먼트 --------
키 shmid 소유자 권한 바이트 nattch 상태
0x0000162e 0 루트 666 27 1

두 번째 컨테이너 만들기는 첫 번째 컨테이너의 공유 메모리 세그먼트를 올바르게 표시하지 않습니다.

$ 도커 실행 shm ipcs -m

------ 공유 메모리 세그먼트 --------
키 shmid 소유자 권한 바이트 nattch 상태

새로운 --ipc=container:CONTAINERID 옵션을 사용하여 세 번째 컨테이너를 생성하면 이제
첫 번째의 공유 메모리 세그먼트:

$ docker run -it --ipc=컨테이너:ed735b2264ac shm ipcs -m
$ sudo ipcs -m

------ 공유 메모리 세그먼트 --------
키 shmid 소유자 권한 바이트 nattch 상태
0x0000162e 0 루트 666 27 1

연결 용기


주의 사항: 이 섹션에서는 기본(브리지)에서 컨테이너 간 연결에 대해 설명합니다.
"레거시 링크"라고도 하는 네트워크. 사용 --링크 사용자 정의 네트워크에서 사용
항목을 추가하지 않는 DNS 기반 검색 은 / etc / 호스트, 설정하지 않음
검색을 위한 환경 변수.

링크 기능을 사용하면 여러 컨테이너가 서로 통신할 수 있습니다. 예를 들어
Dockerfile이 포트 80을 노출한 컨테이너는 다음과 같이 실행하고 이름을 지정할 수 있습니다.

# docker run --name=link-test -d -i -t fedora/httpd

이 경우 링커라고 하는 두 번째 컨테이너는 httpd 컨테이너와 통신할 수 있습니다.
다음과 함께 실행하여 이름이 지정된 link-test --링크= :

# docker run -t -i --link=link-test:lt --name=linker fedora / bin / bash

이제 컨테이너 링커는 별칭 lt를 사용하여 컨테이너 링크 테스트에 연결됩니다. 실행
환경 링커 컨테이너의 명령에 환경 변수가 표시됨
LT(별칭) 컨텍스트(LT_)

# 환경
호스트 이름=668231cb0978
용어=xterm
LT_PORT_80_TCP=tcp://172.17.0.3:80
LT_PORT_80_TCP_PORT=80
LT_PORT_80_TCP_PROTO=tcp
LT_PORT=tcp://172.17.0.3:80
경로=/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/큰 상자
패스워드=/
LT_NAME=/링커/lt
SHLVL=1
홈=/
LT_PORT_80_TCP_ADDR=172.17.0.3
_=/usr/빈/환경

두 컨테이너를 연결할 때 Docker는 컨테이너의 노출된 포트를 사용하여
부모가 액세스할 수 있는 보안 터널.

컨테이너가 기본 브리지 네트워크에 연결되어 있고 연결 다른과
컨테이너 다음 컨테이너의 은 / etc / 호스트 파일은 연결된 컨테이너의
이름입니다.

주의 사항 Docker는 컨테이너의 은 / etc / 호스트 파일,있을 수 있습니다
컨테이너 내부의 프로세스가 비어 있거나
불완전한 은 / etc / 호스트 파일. 대부분의 경우 읽기를 다시 시도하면 문제가 해결됩니다.
문제가 발생했습니다.

매핑 포트 for 외부 용법


애플리케이션의 노출된 포트는 다음을 사용하여 호스트 포트에 매핑할 수 있습니다. -p 깃발. 을 위한
예를 들어 다음을 사용하여 httpd 포트 80을 호스트 포트 8080에 매핑할 수 있습니다.

# 도커 실행 -p 8080:80 -d -i -t 페도라/httpd

만들기 설치 a Data 음량 컨테이너


많은 애플리케이션은 여러 컨테이너에서 영구 데이터를 공유해야 합니다. 도커
다른 컨테이너가 마운트할 수 있는 데이터 볼륨 컨테이너를 생성할 수 있습니다. 을 위한
예를 들어 /var/volume1 및 /tmp/volume2 디렉토리를 포함하는 명명된 컨테이너를 만듭니다.
이미지는 이러한 디렉토리를 포함해야 하므로 몇 가지 RUN mkdir 명령이 필요합니다.
fedora 데이터 이미지에 필요할 수 있습니다.

# docker run --name=data -v /var/volume1 -v /tmp/volume2 -i -t fedora-data true
# docker run --volumes-from=data --name=fedora-container1 -i -t fedora bash

여러 --volumes-from 매개변수는 여러 데이터 볼륨을 함께 가져옵니다.
용기. 그리고 DATA 컨테이너에서 가져온 볼륨을 다음 위치에 마운트할 수 있습니다.
fedora-container1 중간 컨테이너를 통한 또 다른 컨테이너,
해당 데이터의 사용자로부터 실제 데이터 소스를 추상화합니다.

# docker run --volumes-from=fedora-container1 --name=fedora-container2 -i -t fedora bash

설치 외부 볼륨


호스트 디렉토리를 컨테이너 볼륨으로 마운트하려면
디렉토리와 콜론으로 구분된 컨테이너 디렉토리의 절대 경로:

# docker run -v /var/db:/data1 -i -t fedora bash

SELinux를 사용할 때 호스트는 컨테이너 SELinux 정책에 대해 알지 못합니다.
따라서 위의 예에서 SELinux 정책이 적용되면 /var/db 디렉토리는
컨테이너에 쓸 수 없습니다. "권한 거부" 메시지가 발생하고 avc:
호스트의 syslog에 있는 메시지.

이 문제를 해결하려면 이 매뉴얼 페이지를 작성할 때 다음 명령을 실행해야 합니다.
적절한 SELinux 정책 유형 레이블이 호스트에 연결되도록 실행
예배 규칙서:

# chcon -Rt svirt_sandbox_file_t /var/db

이제 컨테이너의 /data1 볼륨에 쓰기가 허용되고 변경 사항이
/var/db의 호스트에도 반영됩니다.

사용 대안 보안 레이블링


다음을 지정하여 각 컨테이너의 기본 레이블 지정 체계를 재정의할 수 있습니다.
--보안 옵션 깃발. 예를 들어 MLS에 대한 요구 사항인 MCS/MLS 수준을 지정할 수 있습니다.
시스템. 다음 명령에서 레벨을 지정하면 동일한
컨테이너 사이의 콘텐츠.

# docker run --security-opt label:level:s0:c100,c200 -i -t fedora bash

MLS의 예는 다음과 같습니다.

# docker run --security-opt label:level:TopSecret -i -t rhel7 bash

이 컨테이너에 대한 보안 레이블 지정을 비활성화하려면 --허용
플래그를 지정하려면 다음 명령을 사용하십시오.

# docker run --security-opt label:disable -i -t fedora bash

컨테이너 내의 프로세스에 대해 보다 엄격한 보안 정책을 원하는 경우 다음을 지정할 수 있습니다.
컨테이너의 대체 유형입니다. 다음에만 허용되는 컨테이너를 실행할 수 있습니다.
다음 명령을 실행하여 Apache 포트에서 수신 대기합니다.

# docker run --security-opt label:type:svirt_apache_t -i -t centos bash

참고 :

다음을 정의하는 정책을 작성해야 합니다. svirt_apache_t 유형.

환경 장치 무게


설정하고 싶다면 / 개발자 / SDA 장치 무게 200, 당신은 장치 무게를 지정할 수 있습니다
--blkio-무게-장치 깃발. 다음 명령을 사용합니다.

# docker run -it --blkio-weight-device "/dev/sda:200" 우분투

지정 격리 technology for 컨테이너 (--격리)


이 옵션은 Microsoft에서 Docker 컨테이너를 실행하는 상황에서 유용합니다.
윈도우. 그만큼 --격리 옵션은 컨테이너의 격리 기술을 설정합니다. 리눅스에서,
유일하게 지원되는 것은 디폴트 값 Linux 네임스페이스를 사용하는 옵션입니다. 이 두 명령
Linux에서 동일합니다.

$ docker run -d busybox 상단
$ docker run -d --isolation 기본 busybox 상단

Microsoft Windows에서는 다음 값 중 하나를 사용할 수 있습니다.

· 디폴트 값: Docker 데몬에서 지정한 값을 사용합니다. --exec-opt . 경우 악마 하지
격리 기술을 지정하지 않고 Microsoft Windows는 방법 기본값으로
값.

· 방법: 네임스페이스 격리 전용입니다.

· 하이퍼브: Hyper-V 하이퍼바이저 파티션 기반 격리.

실제로 Microsoft Windows에서 악마 옵션 세트, 이 두 가지
명령은 동일합니다.

$ docker run -d --isolation 기본 busybox 상단
$ docker run -d --isolation 프로세스 busybox top

다음을 설정한 경우 --exec-opt 격리=hyperv Docker의 옵션 악마, 이들 중
명령은 또한 하이퍼브 격리:

$ docker run -d --isolation 기본 busybox 상단
$ docker run -d --isolation hyperv busybox top

연혁


2014년 XNUMX월, 원래 William Henry(redhat dot com의 whenry)가 다음을 기반으로 편집했습니다.
docker.com 소스 자료 및 내부 작업. 2014년 XNUMX월, Sven Dowideit에 의해 업데이트됨
SvenDowideit@home.org.au⟩ 2014년 XNUMX월, Sven Dowideit 업데이트 ⟨SvenDowideit@home.org.au
2015년 XNUMX월, Sally O'Malley가 업데이트함 ⟨somalley@redhat.com

onworks.net 서비스를 사용하여 docker-run 온라인 사용



최신 Linux 및 Windows 온라인 프로그램