컨테이너

“서버에서 실행되고 있는 상태의 도커 이미지”

“이미지를 기반으로 실행되는 실제 프로세스이며, OS 수준의 격리를 통해 독립적인 실행 환경을 제공”

컨테이너는 소프트웨어, 라이브러리, 종속성 등 애플리케이션 실행에 필요한 모든 것을 패키지로 묶어 표준화된 단위로 만든다.

컨테이너 vs 가상 머신


Dockerfile이란?

컨테이너 이미지를 만드는 설정 파일로, 어떤 이미지에서 출발해서 어떤 명령을 실행할 지를 명시한다.

FROM amazoncorretto:17
WORKDIR /app
COPY bulid/libs/*.jar app.jar
ENTRYPOINT ["java", "-Duser.timezone-Asia/Seoul", "-jar", "app.jar"]

자동 실행 명령어 CMD vs ENTRYPOINT

Dockerfile에는 컨테이너 자동 실행 명령어로 CMD와 ENTRYPOINT가 존재한다 이 둘의 차이는 docker run 명령어를 실행했을 때 발생한다.

CMD: 변경 가능. 실행할 때 다른 명령어가 입력되면 Dockerfile에 작성해둔 CMD 명령어는 무시되고 입력한 새로운 명령어가 실행된다.

ENTRYPOINT: 변경 불가능. Dockerfile에 적어둔 명령어가 고정으로 실행된다.