티스토리 뷰
728x90
반응형
docker build 명령어는 Docker 이미지(Docker Image)를 생성하는 데 사용됩니다. 이 명령어는 Dockerfile과 관련 파일을 기반으로 이미지를 빌드합니다. 빌드된 이미지는 컨테이너를 실행하는 데 사용됩니다.
docker build 명령어의 기본 형식
docker build [OPTIONS] PATH
- PATH: Dockerfile이 위치한 경로. 일반적으로 현재 디렉터리(.)를 사용합니다.
작동 방식
- Dockerfile 읽기: 지정한 경로에서 Dockerfile을 찾아 단계별로 실행.
- 이미지 생성: 각 단계에서 정의한 내용에 따라 이미지 생성.
- 이미지 저장: 빌드가 완료되면 새 이미지를 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 값을 전달합니다.
빌드 프로세스 단계
- Dockerfile 준비
- 앱이 포함된 명령어 작성.
- 예: FROM, COPY, RUN.
- 명령 실행
- docker build 명령어를 실행.
- 예: docker build -t myapp:1.0 .
- 이미지 생성
- Dockerfile의 각 명령어가 실행되며 이미지 생성.
- 이미지 저장
- 생성된 이미지는 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
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- React
- 특정 문자를 기준으로 자르기
- 진수 변환
- 스프링 시큐리티(spring security)-http basic 인증
- .submit()
- java web-mvc
- REST API
- 스프링 시큐리티(spring security)
- java.sql
- MainActor
- jstl(java standard tag library)
- error-java
- java 키워드 정리
- 스프링 프레임워크(spring framewordk)
- docker
- 표현 언어(expression language)
- 제품 등록
- jsp 오픈 소스
- 람다식(lambda expression)
- system.io
- nl2br
- 스프링 프레임워크(spring framework)
- 인텔리제이(intellij)
- 메이븐(maven)
- 문자 자르기
- System.Diagnostics
- java-개발 환경 설정하기
- In App Purchase
- jstl(java standard tag library)-core
- await
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함