도커는 웹 서버나 웹 애플리케이션 같은 장기적인 실행 프로세스에만 적용되는 게 아니다.

간단한 유틸리티 애플리케이션을 도커화 하는데에도 사용할 수 있다.

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)

숫자 두개를 입력하면 사이의 수를 랜덤하게 출력해주는 파이썬 코드이다.

이 코드를 도커화 하기 위해

FROM python

WORKDIR /app

COPY . /app

CMD ["python", "rng.py"]

위와 같은 도커파일이 필요하다.

docker build . 통해 이미지를 생성.

평소와 같이 docker run (컨테이너 이름) 명령을 하게 되면 오류가 나온다.

오류의 내용은 숫자 입력이 필요하다는 것.

docker run 을 하게되면 컨테이너와 바로 연결(attached 모드)이 된다.

해서 컨테이너에 의해 출력된 결과를 바로 받을 수 있다.

하지만 입력할 수 없기에 출력도 받을 수 없으니 오류가 나온 것이다.

이럴 경우 docker run -i 명령을 통해 인터렉티브 모드로 실행할 수 있다.

인터렉티브 모드는 표준 입력을 열린 상태로 유지, 컨테이너에 입력을 할 수 있게 해준다.

추가로 docker run -t 명령은 pseudo TTY가 할당되는데 터미널을 생성한다는 것이다.