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.