컴퓨터 활용/노년에 즐기는 코딩
docker compose exec 명령에서 -T 옵션
easyfly
2025. 9. 28. 14:44
반응형
docker compose exec 명령에서 -T 옵션
docker compose exec 명령에서 -T 옵션은 pseudo-TTY(가상 터미널) 할당을 비활성화한다는 의미입니다.
1. 기본 동작
보통 docker compose exec를 실행하면, 컨테이너 내부에서 TTY(터미널 인터페이스)를 자동으로 붙입니다.
이게 없으면, 명령 실행 도중 입력을 받지 못하거나 화면 출력이 깨질 수 있습니다.
2. mysqldump·mysql < file.sql 같은 경우
mysqldump나 mysql < backup.sql은 표준 입력(stdin)을 통해 데이터를 주고받습니다.
그런데 TTY가 붙어 있으면 입력 장치 충돌이 나서, 아래와 같은 오류가 납니다:
the input device is not a TTY
따라서 -T 옵션을 줘서 "TTY 붙이지 말라"고 해야, 파일 리다이렉션(<)이 정상적으로 작동합니다.

3. 요약
- -T = no-TTY (pseudo-TTY 비활성화)
- 파일 리다이렉션을 쓸 때 꼭 필요
- 안 붙이면 "the input device is not a TTY" 오류 발생
즉, 복원 명령어에서 -T는 "터미널 대신 파일 입력을 바로 MySQL로 넘기게 하는 장치"라고 이해하시면 됩니다.
반응형