도커는 웹 서버나 웹 애플리케이션 같은 장기적인 실행 프로세스에만 적용되는 게 아니다.
간단한 유틸리티 애플리케이션을 도커화 하는데에도 사용할 수 있다.
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가 할당되는데 터미널을 생성한다는 것이다.