본문 바로가기
컴퓨터 활용/노년에 즐기는 코딩

docker compose exec 명령에서 -T 옵션

by easyfly 2025. 9. 28.
반응형

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로 넘기게 하는 장치"라고 이해하시면 됩니다.

 

반응형

댓글