민프
[Docker] 4. Docker 이미지 작성 및 코드 실행 하기 (Python기준) 본문
한 폴더 안에 아래 사진과 같이 main.py, Dockerfile, requirements.txt 를 만든다
requirements.txt는 어떤 패키지, 라이브러리를 몇 버전으로 사용할 지 입력하는 파일이고,
Dockerfile은 Docker 이미지를 생성하기 위한 설정파일로써 어떻게 이미지를 생성 할 것 인지 입력해놓으면 된다.
예시 코드이다.
requirements.txt
python-telegram-bot == 13.7
Dockerfile
FROM python:3.9.16
# 작업 디렉토리를 /app으로 설정합니다.[Docker 컨테이너 내부에서의 작업 디렉토리]
WORKDIR /app
# 현재 디렉토리의 파일을 모두 /app으로 복사합니다.[현재 내 컴퓨터의 작업 디렉토리 -> Docker 컨테이너 내부에서의 작업 디렉토리]
COPY . /app
RUN pip install -r requirements.txt
VOLUME [ "/app" ]
# main.py를 실행합니다.
CMD ["python", "main.py"]
이렇게 넣으면 된다.
도커파일을 작성하는 방법은 FROM, WORKDIR.. 처럼 키워드마다 역할이 있으니 참고해서 넣으면 될 것 같다.
여기에서 VOLUME은 컨테이너와 호스트 간의 데이터 공류를 위한 디렉토리 파일이다.
컨테이너가 삭제되더라도 호스트와 공유하는 데이터가 볼륨에 저장되어 있으면, 해당 데이터는 삭제되지 않고 보존된다. 또한, 여러개의 컨테이너가 동일한 볼륨을 공유할 수 있어서 컨테이너 간 데이터 공유가 용이하다
위 와 같이 파일별 코드를 작성하고 이미지를 만들자
docker build -t pythontest .
이미지를 만들었으면 컨테이너를 실행시켜보자
docker run -it -v hostDirectory:/app my pythontest
run 뒤에 -it -v 옵션을 주었는데 이것은 호스트 디렉토리와 컨테이너 내부의 /app 디렉토리가 연결되어, 호스트에서 코드를 수정하면 컨테이너에서도 실시간으로 코드가 적용되게 할 수 있다.
이렇게 하게 되면 내가 원하는 이미지파일과 코드 수정까지 할 수 있게 된다.
'[Docker]' 카테고리의 다른 글
[Docker] 3. Docker 입문 - 이미지 PULL (생활코딩 정리) (0) | 2022.03.11 |
---|---|
[Docker] 1. Docker 입문 (생활코딩 정리) (0) | 2022.03.11 |
[Docker] Windows 10에 Docker , WSL설치하기 (0) | 2022.03.10 |
Comments