728x90
파이썬 커스텀 이미지를 만들기 위한 도커 파일 생성
FROM python
- 파이썬 공식 이미지를 베이스 이미지로 사용한다.
WORKDIR /app
- 컨테이너가 실행되면 작업 디렉터리를 /app으로 설정한다.
COPY . /app
- 도커 파일과 함께 있는 파일을 모두 app 폴더에 복사한다.
CMD ["python", "run.py"]
- 컨테이너가 시작될 때 실행되어야 하는 명령이다.
도커 이미지 빌드하기
- docker build . 명령어를 실행하고 image ID를 복사한다.
- 여기서 image ID는 sha256으로 암호화된 부분이다.
도커 컨테이너 실행하기
- docker run 명령어를 통해 컨테이너를 실행하려고 했지만 실패했다.
- 이유는 컨테이너로 실행중인 애플리케이션과 상호작용을 할 수 없기 때문이다.
- 파이썬 코드는 min, max를 입력받아 두 수 사이의 랜덤한 수를 출력하는 코드이다.
- docker run만을 사용하면 디폴트로 컨테이너에 연결이 되며 컨테이너에 의해 출력된 결과를 받을 수 있다.
- 하지만, 사용자는 어떠한 것도 입력할 수 없다. 이것 때문에 에러가 발생한 것이다.
- 지금 필요한 것은 사용자가 앱에 특정 값을 입력하는 상호작용이 가능한 인터렉티브 모드(Interactive mode)이다.
인터렉티브 모드 사용하기
docker run
- 도커에서 컨테이너를 인터렉티브 모드로 실행하기 위해서는 -i or --intercative 플래그를 사용해야 한다.
- -t 플래그를 사용하면 컨테이너가 입력을 수신할 수 있는 터미널을 생성하게 된다.
- -i와 -t를 결합하여 -it라는 하나의 플래그로 결합하여 사용할 수 있다.
- 이제 상호작용이 가능해져 min과 max 값 사이의 랜덤한 수를 하나 출력하기 위해 두 수를 입력받게 된다.
- 프로그램이 끝나면 랜덤한 값을 출력하고 터미널이 종료된다.
docker start
- docker start로 컨테이너를 재시작 하고 싶을 때 docker start가 디폴트로 detached 모드로 실행된다는 문제가 있다.
- 이를 해결하기 위해서는 docker start에 -a 플래그를 추가하여 attached 모드로 사용할 수 있다.
- 그러나, 이 방법을 사용하면 작동한 후에 한 번만 값을 입력할 수 있다.
- -i 플래그를 함께 사용해야 interactive mode가 활성화되어 상호작용이 문제없이 가능하다.
- docker start -a -i 명령어로 출력 결과를 수신하는 것뿐만 아니라 입력을 하는 상호작용이 가능해졌다.
정리
- 필요에 따라 컨테이너와 상호작용을 할 수 있다.
- 컨테이너의 애플리케이션과 상호작용을 하고 싶다면 Intercative mode를 사용하면 된다.
참고
Udemy - Docker & Kubernetes : 실전가이드
728x90
'[DevOps] > Docker' 카테고리의 다른 글
도커 이미지에 대해 자세히 살펴보기(dangling image, image inspect) (0) | 2023.06.21 |
---|---|
도커 이미지 & 컨테이너 삭제 명령어 정리 (0) | 2023.06.21 |
Docker - 이미지와 컨테이너 관리하기 (0) | 2023.06.06 |
Docker - 컨테이너 내부 포트를 노출시키는 방법과 이미지 레이어 이해하기 (0) | 2023.06.06 |
Docker - 이미지와 컨테이너를 공부하고 도커 이미지 다운로드 및 생성하기 (0) | 2023.06.03 |