티스토리 뷰

🐳 Docker

docker build

James Wetzel 2025. 1. 15. 11:26
728x90
반응형

docker build 명령어는 Docker 이미지(Docker Image)를 생성하는 데 사용됩니다. 이 명령어는 Dockerfile과 관련 파일을 기반으로 이미지를 빌드합니다. 빌드된 이미지는 컨테이너를 실행하는 데 사용됩니다.


docker build 명령어의 기본 형식

docker build [OPTIONS] PATH
  • PATH: Dockerfile이 위치한 경로. 일반적으로 현재 디렉터리(.)를 사용합니다.

작동 방식

  1. Dockerfile 읽기: 지정한 경로에서 Dockerfile을 찾아 단계별로 실행.
  2. 이미지 생성: 각 단계에서 정의한 내용에 따라 이미지 생성.
  3. 이미지 저장: 빌드가 완료되면 새 이미지를 Docker 데몬에 저장.

자주 사용하는 옵션

1. -t (이미지 이름 지정)

  • 생성한 이미지에 이름과 태그를 지정합니다.
  • 형식: repository:tag (예: myapp:1.0).
docker build -t myapp:1.0 .

2. -f (특정 Dockerfile 사용)

  • 기본적으로 Dockerfile을 찾지만, 다른 파일을 지정할 수 있습니다.
docker build -f MyDockerfile -t myapp:1.0 .

3. --build-arg (빌드 시 변수 전달)

  • 빌드 중 ARG로 정의된 변수 값을 전달합니다.
docker build --build-arg VERSION=1.0 -t myapp:1.0 .

4. --no-cache (캐싱 없이 빌드)

  • 이전 빌드의 캐시를 사용하지 않고 모든 단계를 새로 실행합니다.
docker build --no-cache -t myapp:1.0 .

5. --progress (빌드 진행 방식)

  • 빌드 진행 상황을 설정합니다.
    • plain: 단순 출력.
    • auto: 자동으로 적절한 출력 형식 선택.
docker build --progress=plain -t myapp:1.0 .

예제

1. 기본 빌드

docker build -t myapp:latest .
  • 현재 디렉터리(.)에 있는 Dockerfile을 읽어서 myapp:latest라는 이름으로 이미지를 생성합니다.

2. 특정 Dockerfile로 빌드

docker build -f custom.Dockerfile -t customapp:1.0 .
  • custom.Dockerfile을 사용하여 이미지를 빌드합니다.

3. 빌드 변수 전달

docker build --build-arg ENV=production -t myapp:prod .
  • ARG ENV 변수에 production 값을 전달합니다.

빌드 프로세스 단계

  1. Dockerfile 준비
    • 앱이 포함된 명령어 작성.
    • 예: FROM, COPY, RUN.
  2. 명령 실행
    • docker build 명령어를 실행.
    • 예: docker build -t myapp:1.0 .
  3. 이미지 생성
    • Dockerfile의 각 명령어가 실행되며 이미지 생성.
  4. 이미지 저장
    • 생성된 이미지는 docker images 명령어로 확인 가능.

Dockerfile 예제와 빌드

Dockerfile 내용:

# Base image
FROM node:14

# Working directory
WORKDIR /app

# Copy application files
COPY . .

# Install dependencies
RUN npm install

# Expose the application port
EXPOSE 3000

# Command to run the application
CMD ["npm", "start"]

이미지 빌드:

docker build -t mynodeapp:1.0 .

결과 확인:

docker images

이 명령으로 생성된 이미지를 확인할 수 있습니다.

728x90
반응형