설명
실행 중인 컨테이너에서 명령 실행
사용법
$ docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
Bash
복사
옵션
•
주 명령어
◦
-it [container] [shell] : 컨테이너에서 실시간으로 켜져있는 쉘 터미널 실행
Option | Short | Default | Description |
--detach | -d | 분리 모드: 백그라운드에서 명령 실행 | |
--detach-keys | 컨테이너 분리를 위한 키 시퀀스 재정의 | ||
--env | -e | API 1.25+ 환경 변수 설정 | |
--env-file | API 1.25+ 환경 변수 파일 읽기 | ||
--interactive | -i | 연결되지 않은 경우에도 STDIN(Standard Input)을 열어 두십시오. | |
--privileged | 명령에 확장 권한 부여 | ||
--tty | -t | 의사 TTY(cmd) 할당 | |
--user | -u | 사용자 이름 또는 UID(형식: <name|uid>[:<group|gid>]) | |
--workdir | -w | API 1.35+ 컨테이너 내부의 작업 디렉터리 |
예시
# 셸을 기본 프로세스로 사용하여 이미지 mycontainer에서 이름이 지정된 컨테이너가 생성되고 시작.
# 옵션 ( 의 약칭 )은 의사 TTY가 연결된( ) 상태로 분리 모드로 백그라운드에서 실행되도록 컨테이너를 설정.
# 옵션은 연결 유지( )로 설정되어 프로세스가 즉시 종료
$ docker run --name mycontainer -d -i -t alpine /bin/sh
# /tmp/execWorks그러면 실행 중인 컨테이너 내부에 mycontainer백그라운드에서 새 파일이 생성
$ docker exec -d mycontainer touch /tmp/execWorks
# 컨테이너에서 새 셸 세션이 시작
$ docker exec -it mycontainer sh
# 이 docker exec명령은 컨테이너가 생성될 때 설정된 환경 변수를 상속.
# 전역 환경 변수를 재정의하거나 에서 시작한 프로세스에 대한 추가 환경 변수를 설정하려면 --env(또는 약칭)을 사용.
$ docker exec -e VAR_A=1 -e VAR_B=2 mycontainer env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=f64a4851eb71
VAR_A=1
VAR_B=2
HOME=/root
# --workdir옵션(또는 -w단축형)을 사용하여 실행할 명령에 대한 대체 작업 디렉터리를 지정
$ docker exec -it -w /root mycontainer pwd
/root
Bash
복사