[32] 인터렉티브 모드로 들어가기

    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는 다양한 유형의 애플리케이션을 컨테이너화할 수 있으며, 적절한 옵션을 사용하여 필요한 상호작용 수준을 설정할 수 있습니다.

     

     

    참고

    https://www.udemy.com/course/docker-kubernetes-2022

    728x90
    반응형

    댓글