어제 오늘 내일

[docker] 컨테이너 인터랙티브(interactive) 모드 이해와 활용 본문

IT/Docker

[docker] 컨테이너 인터랙티브(interactive) 모드 이해와 활용

hi.anna 2025. 10. 13. 07:29

1. 인터랙티브 모드 개요

Docker 컨테이너를 실행할 때 -i(interactive)와 -t(tty) 옵션을 함께 주면 인터랙티브 모드로 실행할 수 있습니다.
이 모드는 컨테이너 안에서 직접 명령어를 입력하고 결과를 확인할 수 있어 개발·디버깅·테스트에 유용합니다.

  • -i : 표준 입력(stdin) 유지 → 사용자 입력 가능
  • -t : 가상 터미널(TTY) 할당 → 터미널 환경 제공

보통 -it 옵션을 조합해서 사용합니다.

 

 

2. docker run과 인터랙티브 모드

docker run -it <이미지명> <명령어>

예:

docker run -it ubuntu bash

→ 새로운 Ubuntu 컨테이너가 생성되고, 바로 bash 셸에 접속할 수 있습니다.

 

 

3. docker start의 인터랙티브 모드

이미 만들어둔 컨테이너를 다시 실행할 때는 docker start-i-a 옵션을 활용합니다.

  • -i : 표준 입력 활성화
  • -a : 표준 출력과 에러 출력에 현재 터미널을 연결

예제

# ubuntu 컨테이너를 실행
docker run -it --name ubuntutest ubuntu bash
# exit 로 종료

# 동일 컨테이너를 다시 인터랙티브 모드로 시작
docker start -ia ubuntutest

→ 다시 ubuntutest 컨테이너 안에 들어갈 수 있고 bash 셸을 사용할 수 있습니다.

 

 

4. 실행 중인 컨테이너에 접속하기 (exec 활용)

컨테이너가 이미 실행 중이라면 docker exec으로 새로운 터미널 세션을 열 수 있습니다.

docker exec -it ubuntutest bash

→ 실행 중인 ubuntutest 컨테이너 내부에 새로운 bash 세션이 열립니다.

 

 

5. 알파인 리눅스 예제

# 컨테이너 실행
docker run -it --name alpine-test alpine sh
# exit 로 종료

# 다시 시작하면서 인터랙티브 모드로 접속
docker start -ia alpine-test

실행 후 프롬프트 예시:

/ #

여기서 exit를 입력하면 컨테이너도 종료됩니다.

 

 

6. 정리

  • docker run -it : 새 컨테이너를 생성해 인터랙티브 모드 실행
  • docker start -ia : 기존 컨테이너를 다시 인터랙티브 모드 실행
  • docker exec -it : 실행 중인 컨테이너에 새 세션 접속
  • bash에서 exit → 컨테이너 종료

 

 

반응형
Comments