728x90
반응형
인터렉티브 모드로 들어가기
Docker의 상호작용 모드 이해하기: Python 입력 앱 예제
from random import randint
min_number = int(input('Please enter the min number: '))
max_number = int(input('Please enter the max number: '))
if (max_number < min_number):
print('Invalid input - shutting down...')
else:
rnd_number = randint(min_number, max_number)
print(rnd_number)
Docker 실행 모드와 상호작용
기본 실행의 문제점
docker run 이미지ID
- 출력은 보이지만 입력 불가
- 사용자 입력이 필요한 앱은 실행 실패
상호작용 모드 실행
# -i: interactive mode (입력 가능)
# -t: terminal allocation (터미널 할당)
docker run -it 이미지ID
- 사용자 입력 가능
- 터미널과 상호작용 가능
컨테이너 재시작 시 상호작용
잘못된 방법
docker start -a 이미지ID
- 출력만 가능
- 입력 불가능
올바른 방법
docker start -a -i 이미지ID
- -a: attached 모드 (출력 수신)
- -i: 상호작용 모드 (입력 가능)
주요 옵션 설명
-i (interactive)
- 표준 입력 유지
- 컨테이너에 입력 가능
-t (tty)
- 가상 터미널 할당
- 터미널 인터페이스 제공
- sudo TTY 가 할당
-a (attach)
- 컨테이너 출력 수신
- 로그 확인 가능
i와 t 플레그를 합치면, 무언가를 입력할 수 있게 되서, 컨테이너는 입력을 수신하고
컨테이너에 의해 노출되는 터미널도 얻게된다
사용 시나리오
입력이 필요한 애플리케이션
- CLI 도구
- 대화형 스크립트
- 사용자 입력 기반 프로그램
출력만 필요한 애플리케이션
- 웹 서버
- 백그라운드 서비스
- 로깅 애플리케이션
이처럼 Docker는 다양한 유형의 애플리케이션을 컨테이너화할 수 있으며, 적절한 옵션을 사용하여 필요한 상호작용 수준을 설정할 수 있습니다.
참고
728x90
반응형
'강의 > Docker & Kubernetes : 실전 가이드' 카테고리의 다른 글
[36] 컨테이너에 / 컨테이너로 부터 파일 복사하기 (0) | 2025.02.17 |
---|---|
[33, 34] 이미지 & 컨테이너 삭제하기 (0) | 2025.02.16 |
[29, 30] Attached & Detached 컨테이너 이해하기 (0) | 2025.02.15 |
[26] 이미지 레이어 이해하기 (0) | 2025.02.14 |
[25] 이미지는 읽기 전용 (0) | 2025.02.14 |
댓글