티스토리 뷰

CI&CD

Docker - 이미지란

realizers 2022. 3. 9. 13:15
728x90
반응형

이미지란?


  • 이미지란 프로세스가 실행되는 파일들의 집합입니다. 예를들어 리눅스서버가 실행되기 위해서는 무수히 많은 파일들이 있는데 해당 모든 파일들을 압축하여 이미지를 만든다고 생각하면 될 것같습니다.
  • 이미지는 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않습니다.

 

Dockerfile


  • Dockerfile이란 Docker 이미지를 만들기 위한 설정파일 입니다.
핵심 명령어
명령어 설명
FROM 베이스 이미지 지정
RUN 쉘 명령어 실행 -y : 넣어주기
CMD 컨테이너 기본 실행 멸령어
EXPOSE 오픈되는 포트 정보
ENV 환경 변수 설정
ADD 파일 또는 디렉토리 추가, URL/ZIP 사용가능
COPY 파일 또는 디렉토리 추가
ENTRYPOINT 컨테이너 기본 실행 명령어
VOLUME 호스트와 컨테이너 내부의 디렉토리를 설정하여 데이터를 공유
USER RUN, CMD, ENTRYPOINT를 실행하는 사용자
WORKDIR 해당 디렉토리로 이동히여 명령어를 실행하겠다는 의미, cd와 같은 기능
ex) WORKDIR /home/kdg
ARG 빌드타임 환경변수 설정
LABEL key - value 데이터
ONBUILD 다른 빌드의 베이스로 사용될때 사용하는 명령어

 

Dockerfile 예시
FROM openjdk:11-jre-slim-buster
RUN sodu apt-get update -y
RUN sodu apt-get upgrade -y
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

 

이미지 빌드 명령어
docker build -t --no-cache kdg/dev .
옵션 설명
-t 이미지 이름과 태그를 설정
--no-cache 빌드 시 캐시 기능을 사용하지 않음
. 빌드 컨텍스트로서 현재 디렉토리를 의미하는 .을 주로사용
필요한 경우 다른 디렉토리를 지정하여 사용 가능

 

.dockerignore
  • .gitignore와 비슷한 역할을 하는 파일

 

이미지 배포


  • 하나의 이미지를 만들어 도커 허브에 저장을 한다면 해당 이미지를 다른 서버에서 다운을 받아 사용할 수 있습니다.

728x90
반응형