티스토리 뷰

 

이미지를 빌드하기 위해서는 build 명령어를 사용해야 합니다. 또한 빌드를 하기 위해서는 Dockerfile을 필요로 합니다. 

Dockerfile을 사용하여 이미지로 빌드할 때 사용하는 명령어에 대해서 알아보겠습니다.

 

Dockerfile 빌드

기본적으로 Dockerfile을 빌드하기 위해서는 다음 명령어를 입력해야 합니다. Dockerfile이 존재하는 경로를 찾아 원하는 이미지명을 지정하여 이미지를 생성할 수 있습니다.

$ docker build -t 이미지명 Dockerfile경로

 

위의 명령어는 빌드를 할 때 필요로 하는 도커파일의 이름을 Dockerfile로 인지하고 있습니다. 따라서 별도로 도커파일의 이름을 지정해주지 않았습니다. 그러나 도커파일명이 항상 Dockerfile 일 수가 없습니다. 이럴 때는 -f 옵션을 사용하여 Dockerfile의 이름을 지정해주어야 합니다.

$ docker build -f 도커파일명 -t 이미지명 Dockerfile경로

 

-f 옵션은 도커파일명이 Dockerfile이 아닌 경우에만 별도로 지정하는 옵션입니다. 예를 들어 도커파일의 이름이 Dockerfile-env라면 다음과 같이 작성해야 합니다. 현재 디렉토리에 있는 Dockerfile-env 파일을 가지고 build-env 이미지를 빌드하는 명령어입니다.

$ docker build -f Dockerfile-env -t buildapp:env .

 

ARG vs ENV

Dockerfile을 작성할 때 ARG와 ENV 명령어가 존재합니다. 두 명령어의 역할을 비슷하면서도 다른 부분이 존재하는데요. 사진과 함께 설명을 해보겠습니다.

ARG

Dockerfile에 ARG 옵션을 사용하여 COLOR 환경변수에 red 값을 지정하였습니다. 이미지를 빌드하고 컨테이너를 실행하면 글씨색이 변경되지 않았음을 알 수 있습니다.

ARG를 사용하여 빌드

ARG 명령어는 빌드 시간에만 적용됩니다. 즉 이미지를 빌드할 때만 해당 옵션의 값이 사용되고, 이 이미지로 생성한 컨테이너에서는 적용되지 않습니다. 그렇다면 ARG 명령어를 굳이 왜 사용하는 걸까요? 동일한 Dockerfile을 여러 환경에서 사용한다고 생각해 봅시다. 예를 들어, 개발 환경에서는 디버그 모드를 활성화하고, 운영환경에서는 디버그 모드를 비활성화할 수 있습니다.

 

ENV

ARG 명령어와 마찬가지로 Dockerfile의 ENV 명령어에 red 값을 지정하였습니다. 해당 이미지를 빌드 후 실행하면 ARG 명령어와 달리 정상적으로 변경되어 있음을 알 수 있습니다.

ENV를 사용하여 빌드

ENV 명령어는 빌드된 이미지에 포함되어 컨테이너에서 실행될 때 사용됩니다. ENV로 지정한 변수는 컨테이너 내부에서 환경 변수로 사용되며, 컨테이너 실행 중에도 해당 변수의 값을 수정할 수 있습니다. 따라서 이미지로 빌드할 때 ENV로 정의한 변수의 값이 이미지에 저장되고, 컨테이너에서 실행할 때 해당 값이 적용됩니다.

 


인프런 - 개발자를 위한 쉬운 도커

 

[2024 NEW] 개발자를 위한 쉬운 도커 강의 - 인프런

현업 개발자가 도커를 사용한 경험을 녹여낸 새로운 커리큘럼으로 기존 교재 및 강의와 차별된 강의를 제공합니다. 단순한 명령어 사용법이 아닌 도커를 왜 사용해야하는지 대한 근본적인 질문

www.inflearn.com

 

Total
Today
Yesterday
최근에 올라온 글
«   2024/11   »
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