본문 바로가기
Docker

Docker Dockerfile 작성 및 이미지 빌드 / 이미지 빌드: docker build 명령어 사용법

by Maccrey Coding 2024. 9. 11.
728x90
반응형

 

Docker는 애플리케이션을 독립된 환경에서 실행할 수 있게 해주는 플랫폼입니다.

Docker를 사용하면 애플리케이션과 그 의존성을 하나의 패키지로 묶어 컨테이너를 만들 수 있습니다.

이 과정에서 중요한 단계 중 하나는 바로 Docker 이미지를 빌드하는 것입니다.

Docker 이미지를 빌드할 때 사용하는 명령어가 바로 docker build입니다.

이 블로그에서는 docker build 명령어의 기본 사용법과 옵션을 초보자도 쉽게 이해할 수 있도록 설명하겠습니다.

1. Docker 이미지란?

Docker 이미지는 애플리케이션, 라이브러리, 설정 파일 등 애플리케이션 실행에 필요한 모든 것을 포함한 패키지입니다.

이미지는 Dockerfile을 기반으로 생성되며, 이 파일에는 이미지가 어떻게 구성될지를 정의하는 명령어들이 포함되어 있습니다.

2. docker build 명령어란?

docker build 명령어는 Dockerfile을 기반으로 Docker 이미지를 생성합니다. 이 명령어를 사용하여 Dockerfile에 정의된 지침에 따라 이미지를 빌드할 수 있습니다.

3. 기본 사용법

docker build 명령어의 기본 구문은 다음과 같습니다.

docker build [옵션] [경로]
  • [옵션]: 빌드 과정에서 사용할 옵션입니다.
  • [경로]: Dockerfile이 위치한 디렉터리 경로입니다. 일반적으로 . (현재 디렉터리)를 사용합니다.

4. 주요 옵션

다양한 옵션을 통해 docker build 명령어를 세밀하게 조정할 수 있습니다. 가장 많이 사용하는 옵션들은 다음과 같습니다:

4.1 -t 또는 --tag

-t 옵션은 빌드된 이미지에 태그를 붙입니다. 태그는 이미지의 이름과 버전을 식별하는 데 사용됩니다.

docker build -t <이미지이름>:<태그> [경로]
  • <이미지이름>: 빌드된 이미지의 이름입니다.
  • <태그>: 이미지의 버전 또는 태그입니다. 예를 들어, latest는 최신 버전을 의미합니다.

예제

docker build -t my-app:latest .
  • my-app:latest: 빌드된 이미지를 my-app이라는 이름과 latest라는 태그로 지정합니다.

4.2 -f 또는 --file

-f 옵션은 사용할 Dockerfile의 경로를 지정합니다. 기본적으로 현재 디렉터리의 Dockerfile을 사용하지만, 다른 위치에 있는 Dockerfile을 사용할 때 이 옵션을 사용합니다.

docker build -f <Dockerfile경로> -t <이미지이름>:<태그> [경로]

예제

docker build -f ./Dockerfile.dev -t my-app:dev .
  • ./Dockerfile.dev: 현재 디렉터리의 Dockerfile.dev 파일을 사용하여 이미지를 빌드합니다.

4.3 --no-cache

--no-cache 옵션은 이미지 빌드 시 캐시를 사용하지 않도록 설정합니다.

이 옵션을 사용하면 Docker가 이전 빌드에서 저장된 캐시를 무시하고 모든 단계를 새로 빌드합니다.

docker build --no-cache -t <이미지이름>:<태그> [경로]

예제

docker build --no-cache -t my-app:latest .
  • --no-cache: 빌드 시 캐시를 사용하지 않고 새로 빌드합니다.

4.4 --build-arg

--build-arg 옵션은 Dockerfile에서 사용할 빌드 타임 변수를 설정합니다.

Dockerfile에서 ARG 명령어로 정의된 변수의 값을 설정할 때 사용됩니다.

docker build --build-arg <변수명>=<값> -t <이미지이름>:<태그> [경로]

예제

docker build --build-arg APP_ENV=production -t my-app:latest .
  • --build-arg APP_ENV=production: APP_ENV 변수를 production으로 설정합니다.

5. 이미지 빌드 예제

다음은 Dockerfile을 사용하여 간단한 Node.js 애플리케이션의 Docker 이미지를 빌드하는 예제입니다.

 

Dockerfile 예제

FROM node:14

WORKDIR /app

COPY package.json ./
RUN npm install

COPY . .

EXPOSE 3000
CMD ["node", "app.js"]

이 Dockerfile을 사용하여 이미지를 빌드하려면 다음 명령어를 입력합니다.

docker build -t my-node-app:latest .
  • -t my-node-app:latest: 빌드된 이미지를 my-node-app이라는 이름과 latest 태그로 지정합니다.
  • .: 현재 디렉터리에서 Dockerfile을 찾습니다.

6. 이미지 빌드 결과 확인

이미지 빌드가 완료되면, docker images 명령어를 사용하여 빌드된 이미지를 확인할 수 있습니다.

docker images
  • 이 명령어는 현재 Docker 환경에 존재하는 모든 이미지를 리스트업합니다.

docker build 명령어는 Dockerfile을 기반으로 Docker 이미지를 생성하는 중요한 도구입니다.

다양한 옵션을 사용하여 빌드 과정과 결과를 세밀하게 조정할 수 있습니다. -t, -f, --no-cache, --build-arg 등의 옵션을 통해 빌드 프로세스를 최적화하고, 필요한 이미지를 효율적으로 생성할 수 있습니다.

이 블로그가 docker build 명령어를 이해하고 사용하는 데 도움이 되었기를 바랍니다.

 

추가적인 질문이나 도움이 필요하시면 언제든지 말씀해 주세요!

구독!! 공감과 댓글은 저에게 큰 힘이 됩니다.

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

 

 

728x90
반응형