개발자

도커 공부 중 궁금한 것

2024년 04월 21일조회 147

docker 공부 중인 초보 개발자입니다! docker 컨테이너를 실행한다는 것 자체가 host os 위에서 새로운 리눅스 운영체제를 실행한다는 뜻 아닌가요? 예를 들어, nginx 이미지를 다운 받아 컨테이너 실행 시 nginx는 리눅스 환경 위에서 작동되는 것 아닌가요? 근데 왜 굳이 리눅스 관련 이미지를 다운 받아 컨테이너를 실행시키는지 궁금합니다.... 도대체, 리눅스 관련 이미지를 다운받아 컨테이너를 실행하는 것과 그렇지 않은 상태에서 컨테이너를 실행하는 것.. 도대체 무슨 차이인가요..ㅠㅜ

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 2

백승훈님의 프로필 사진

안녕하세요 답변 드립니다 😏 https://dzone.com/storage/temp/14462155-docker-apps.png 리눅스 관련 이미지가 뭔지는 잘 모르겠으나 리눅스는 모든 컨테이너에 이미 기반으로 설치되어 있습니다. nginx는 리눅스가 아닙니다 nginx입니다. 운영체제와 실행 프로그램 이라고 이해하시면 됩니다. 각 컨테이너는 독립된 환경이며 리눅스 기반의 os가 설치되어 있습니다. 컨테이너 내부에 필요한 패키지나 이미지를 설치하여 독립된 환경의 컨테이너를 구성합니다.

이정민님의 프로필 사진

이정민

작성자

구직활동중2024년 04월 25일

헉 제가 개념이 부족해 질문 자체가 좀 이상했나봅니다 ㅎㅎ; 아랫분 댓글이 제가 궁금했던 내용입니당 ㅎㅎ 답글 달아주셔서 감사합니다!

박범수님의 프로필 사진

'리눅스 관련 이미지'가 혹시 베이스 이미지로 ubuntu, centos 등을 사용하는 것을 말씀하시는건가요? 그걸 말씀하시는게 맞다면 아무것도 없는 scratch 이미지를 쓰는 것에 비해 장점은 분명히 있습니다. 리눅스의 커널 부분만을 남겨둘 경우 생각보다 이미지 구성이 까다롭습니다. 대표적으로 apt, yum 같은 패키지 매니저가 없어서 의존성을 설치하기가 까다롭습니다. 또 어플리케이션이 특정한 리눅스 배포판에서만 테스트 되었을 경우 다른 이미지를 쓰는 것이 부담스러울 수 있습니다. 그래서 베이스 이미지로 ubuntu, centos 같은 이미지를 많이 쓰는 것입니다. 이런 배포판은 기능이 많은 만큼 이미지의 용량도 큽니다. 이미지를 가볍게 만들고 싶을 경우 alpine이나 busybox, scratch 등의 경량 이미지를 사용합니다. 빌드에 필요한 의존성 설치는 패키지 매니저를 통해 편리하게 하고, 최종 이미지에는 실행에 꼭 필요한 파일만 남기는 방법도 있습니다. multi stage build를 검색해보세요.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!