docker exec
패키지·런타임
쓰는 꼴
docker exec -it <container> <command>이미 돌고 있는 컨테이너 안에서 다른 프로세스를 실행합니다 — 멈춘 컨테이너에는 쓸 수 없고, 가벼운 이미지에는 bash가 없어 sh로 들어가야 합니다.
자주 쓰는 옵션
| 옵션 | 뜻 |
|---|---|
| -it | interactive terminal, for a shell |
| -u <user> | run as another user, e.g. root |
| -w <dir> | start in that directory |
| -e KEY=value | set a variable for this process only |
| -d | run it in the background |
예시
docker exec -it web basha shell inside a running container
docker exec -u root -it web shas root, and sh because slim images have no bash
docker exec -it db psql -U postgresruns a client that lives inside the container
무엇을 어디에 넣는지가 문제입니다. 프로젝트 안인지 시스템 전체인지 먼저 정하세요.
읽는 방법
- 대괄호 [ ]는 넣어도 되고 안 넣어도 되는 자리입니다.
- 점 셋 …은 여러 개를 이어 쓸 수 있다는 뜻입니다.
- 옵션은 대소문자를 가립니다 — -r과 -R이 다른 명령도 있습니다.
자주 묻는 것
Q. docker exec은 무엇을 하나요?
이미 돌고 있는 컨테이너 안에서 다른 프로세스를 실행합니다 — 멈춘 컨테이너에는 쓸 수 없고, 가벼운 이미지에는 bash가 없어 sh로 들어가야 합니다.
Q. 어떻게 치나요?
docker exec -it <container> <command> — 대괄호는 생략할 수 있는 자리입니다.
Q. 옵션은 몇 개나 자주 쓰나요?
여기 정리한 것은 5개입니다. 전체 목록은 man docker에 있습니다. 이 명령은 패키지·런타임 갈래입니다.
같이 보는 명령
man 페이지: man docker-exec