Infra & Container/Docker
Docker - Introduction to Docker
Porits789
2024. 3. 18. 23:04
Docker Image 생성하기
1. Dockerfile 작성하기
도커 이미지를 생성하기 위해 Dockerfile을 작성해야한다. 간단한 작성 과정과 함께 사용되는 명령들을 정리한다.
FROM python:3.9
RUN pip install pandas
WORKDIR /app
COPY pipeline.py pipeline.py
ENTRYPOINT ["python", "pipeline.py"]
- FROM: 기반이 되어주는 이미지를 선택한다. (docker-hub에 있음!!)
> 내가 생성한 이미지는 python:3.9를 기본 이미지로 가져와 생성되는 이미지이다! - RUN: 이미지 생성시에 초기에 동작할 명령들을 입력한다.
> pip를 사용해서 pandas 모듈을 설치! - WORKDIR: 작업할 디렉토리를 설정한다.
- COPY: 로컬에서 docker에 복사할 파일을 정의한다.
- ENTRYPOINT: 컨테이너 시작시에 실행되는 기본 명령을 정의한다.
> python으로 pipeline.py를 실행하라는 뜻!! ENTRYPOINT에 추가로 인자전달을 위해서 docker 실행 시에 인자를 같이 넘겨줄 수 있다. 아래 예시문을 추가하였다.!
docker run -it test:pandas your_day_value
2. pipeline.py 작성하기
import pandas as pd
import sys
# some fancy stuff with pandas
# argv[0] = name of the file
day = sys.argv[1]
print(f'job finished successfully day= f{day}')
인자를 받아서 구문을 출력하는 간단한 파일을 생성하여 테스트 해보았다.
3. 이미지 빌드 및 실행
- 빌드 명령: -t를 이용해서 tag를 부여하고 .을 이용해서 현재 디렉토리를 빌드 컨텍스트의 위치로 지정한다.
즉, docker build 명령을 실행하는 위치에서 Dockerfile을 찾고, 해당 디렉터리와 그 하위 디렉터리에 있는 파일들을 이미지 빌드에 사용할 수 있는 자원으로 간주한다.
docker build -t test:pandas .
- 이미지 실행(컨테이너 생성)
: 도커 컨테이너를 실행하고 생성된 컨테이너에 인자를 전달한다.
-it 옵션은 Docker 컨테이너를 대화형 모드로 실행하며, 터미널 입력을 컨테이너에 연결한다!
이 옵션은 일반적으로 컨테이너 내에서 명령어를 실행하거나, 쉘에 접근하여 컨테이너를 대화식으로 조작할 필요가 있을 때 사용된다.
docker run -it test:pandas 2024-03-18