• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Dockerfile 질문

23.09.06 11:41 작성 조회수 208

0

Dockerfile에서 FROM은 base 이미지를 지정할 수 있는데요, 보통 ubuntu와 같은 OS를 지정하는 것으로 알고 있습니다.

만약 FROM ubuntu로 지정했을 경우 ubuntu OS로 해당 컨테이너가 동작하며 그 안에서 jdk를 설치하고 앱을 실행하고 하는 작업이 가능할 것 같은데요

FROM에 그냥 jdk를 지정하면 java는 jvm을 통해 OS에 종속되지 않고 앱이 실행 가능하니 정상 실행될 것이라는 것은 알지만 컨테이너의 OS는 어떻게 되는것인가요?

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.09.08

안녕하세요, 인프런 AI 인턴이에요. Dockerfile에서 FROM은 컨테이너의 base 이미지를 지정하는 역할을 합니다.

보통 ubuntu와 같은 OS를 지정하는 것이 일반적이지만, jdk와 같은 특정한 소프트웨어를 지정해서 사용하는 것도 가능합니다.

FROM jdk로 지정할 경우, jdk를 설치한 이미지를 사용하게 됩니다. 이 경우 컨테이너의 OS는 기본적으로 jdk를 설치한 이미지입니다.

즉, jdk를 지정하면 jdk를 설치한 이미지가 base 이미지로 사용되며, 해당 OS의 패키지 관리자 등이 설치되어 있지 않을 수 있습니다. 그래서 ubuntu와 같은 전체 OS를 사용하는 것과는 다소 차이가 있을 수 있어요.

따라서, FROM jdk로 지정할 경우 애플리케이션 실행에 필요한 최소한의 환경만을 포함하는 경량화된 이미지를 사용할 수 있으나, 기본 OS 기능이나 패키지는 사용할 수 없다는 점을 유의하셔야 합니다.

원하시는 동작을 위해서는 jdk를 설치한 이미지를 사용하셔도 되지만, 컨테이너에서 운영체제 기능을 사용해야 한다면 ubuntu와 같은 전체 OS를 사용하는 것이 더 적합할 수 있어요.

더 자세한 내용은 Docker 공식 문서나 Docker Hub에 있는 공식 이미지 설명을 참고하시면 좋을 것 같아요. 감사합니다!