카테고리 없음

Docker_기본

멍주다배 2025. 1. 21.

Docker 기본 플로우

dockerfile 작성 → image 빌드 → container 실행

 

dockerfile 

  • 컨테이너 이미지를 생성하기 위한 명령어 모음이 담긴 텍스트 파일 (명령이 들어있는 설계도)
  • dockerfile 작성 - 실제로 실행해야할 명령어들을 순서대로 작성
    1. 베이스 이미지 선택
      • 이미지의 기반이 될 OS 또는 런타임 선택
    2. 애플리케이션 설치 및 설정
      • 필요한 코드와 파일을 이미지에 복사
    3. 파일 복사
      • 애플리케이션 실행에 필요한 라이브러리나 도구 설치
    4. 작업 디렉토리 설정
      • 컨테이너에서 열어야 할 포트 정의
    5. 애플리케이션 실행 명령어
      • 컨테이너 실행 시 기본으로 실행될 명령 설정
더보기
# 1. 베이스 이미지
FROM python:3.10-slim

# 2. 작업 디렉토리 설정
WORKDIR /app	# 컨테이너 내부에서 /app 디렉토리를 작업 폴더로 지정

# 3. 애플리케이션 코드 복사
COPY . .	# 현재 디렉토리(.)의 모든 파일을 컨테이너의 /app으로 복사

# 4. 의존성 설치
RUN pip install --no-cache-dir -r requirements.txt

# 5. 포트 설정
EXPOSE 5000

# 6. 실행 명령
CMD ["python", "app.py"]
  • .git이나 불필요한 파일 등을 빌드에 포함하지 않도록 .dockerignore 파일 설정하기
  • 가볍고 최적화된 이미지를 빌드
    • 빠른 속도
    • 리소스 절약
    • 보안 취약점 감소
  • root가 아닌 사용자 계정 사용
    • 보안 강화
    • 권한 관리

 

image

  • dockerfile을 기반으로 image 빌드
  • 이미지 = 파이썬 클래스
  • 파이썬에서 제공하는 클래스가 있듯이 도커가 만들어놓은 이미지를 가져와서 사용할 수 있음

 

container

  • image를 기반으로 container 실행
  • 컨테이너 = 파이썬 객체 (하나의 클래스로 여러개의 객체를 만들 수 있음, 이미지는 고정이고 컨테이너는 수정 가능)