We will find a way, we always have.

-interstellar

DevOps/도커

[도커] 파이썬과 인터렉티브

Redddy 2022. 8. 12. 18:40

도커와 파이썬을 연결해보는 실습을 하였다.

그동안 노드로만 하다가 파이썬을 보니 매일 중국어 듣다가 한국어 들은 것처럼 매우 기뻤다...ㅎ

from random import randint

min_ = int(input('please enter min '))
max_ = int(input('please enter max '))

if (max_ < min_):
    print('Invalind input - shuttind down')
else:
    rnd_num = randint(min_, max_)
    print(rnd_num)

 

 

 

이제 파이썬을 도커화해보자.

FROM python

WORKDIR /app

COPY . /app

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

 

도커 터미널에서 이미지 빌드하고 컨테이너를 실행시킨다. 빌드할 때 처음 하느거라 시간이 조금 소요될 수 있다.

 

컨테이너로 실행할 때 EOFError와 마주하게 된다. 

터미널에 입출력 동작을 하려면 몇가지 명령어를 추가해줘야 한다.

Attached 모드가 아니여도 표준입출력을 받을 수 있는 interactive의 i와 새로운 터미널을 만들어줄 tty의 t를 결합하면 된다.

 

docker run -it [컨테이너 ID]

이제 input 값을 받을 수 있다.

 

종료 후 다시 입력받으려면 일반적으로 했던것처럼 start 만으로는 안된다. start는 Detached 모드가 디폴트이기에 터미널이 끊겨버린다. build -a [컨테이너 ID] 를 사용한다 하여도 min 값밖에 받지 못하는 오류가 발생한다.

 

방법은!!

docker start -a -i [컨테이너 ID]

a는 Attached 모드의 그 a이다.

 

'DevOps > 도커' 카테고리의 다른 글

[도커] 이미지 검사  (0) 2022.08.17
[도커] 이미지 & 컨테이너 삭제  (0) 2022.08.12
[도커] Attached 모드 & Detached 모드  (0) 2022.08.12
[도커] 이미지와 컨테이너  (0) 2022.08.12
[도커] 도커 첫 발걸음  (0) 2022.08.12