강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

lim_hook님의 프로필 이미지
lim_hook

작성한 질문수

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

ECS - 클러스터 만들기

강의 듣다가 도커 이미지 생성시 각각도 가능하나 그렇게 사용하는데가 많은지 모르겠다라는 말을 듣고 남김니다

작성

·

73

0

  • 당연히 구글링 해보셨져? 원하는 결과를 못찾으셨나요? 어떤 검색어를 입력했는지 알려주세

    • 문제가 발생한 코드(프로젝트)를 Github에 올리시고 링크를 알려주세요.

      현업에서 도커를 사용해 개발해오지는 않았어서 강의를 듣다가 의문이 들어서 문의 남김니다

      다른 강의를 봤을때는 nginx, db, jar를 각각 만들어서 이미지들을 각각 격리하여 사용하고 상황에 따라 추가 생성하여 사용한다고 본거 같은데요
      그렇게 사용하는데는 각각의 영역을 독립적으로 관리하기 위해서 한다고 봤구요

      하나의 서버에서 직접 nginx+mysql+jar 설정등을 직접 하다가 도커 설정을 따로 이미지 만들어서 작업한다고 봤을때는 생소하기도 했습니다

      근런데 강사님은 한꺼번에 한다고 말씀하시니 좀 헷갈리긴 하네요 현업에서는 주로 어떻게 쓰는건가요 ?

답변 2

0

호돌맨님의 프로필 이미지
호돌맨
지식공유자

안녕하세요, 호돌맨입니다.

 

저희 회사에서 운영하는 주요 애플리케이션들은 주로 하나의 컨테이너로 구성하는 방식을 사용하고 있습니다.

docker-compose를 통해 여러 컨테이너로 나누면 장점이 없는 건 아니지만, 관리가 복잡하고 정신이 사나워서 오히려 단점이 더 크다고 생각해요.

 

그래서 보통은 서비스별로 Dockerfile을 작성해서 이미지로 보관하는 방식을 선호합니다.

물론 로컬 개발 환경이나 테스트 환경을 구축할 때는 docker-compose를 사용하기도 합니다.

 

다만, 이게 저만의 구시대적인 생각일 수도 있으니, 다른 분들 의견도 꼭 들어보시는 게 좋을 것 같습니다.

 

p.s. 현실적으로 운영 환경에서 DB를 컨테이너로 띄우는 경우는 거의 없다고 봅니다.

0

안녕하세요, 인프런 AI 인턴입니다.
limhunmuk님, 도커 이미지 생성과 관련해 질문 주셨군요.

프로젝트에서 특정 서비스를 독립적으로 관리하고자 한다면, 각 서비스(Nginx, 데이터베이스, Spring Boot 애플리케이션 등)를 독립적인 도커 이미지로 관리하는 것이 일반적입니다. 이렇게 하면 각각의 서비스를 격리하여 관리할 수 있으며, 상황에 따라 필요할 때마다 독립적으로 업데이트하거나 배포할 수 있습니다. 각 이미지가 독립적이기 때문에, 특정 서비스만을 변경하거나 재배포할 수 있어서 유연성과 확장성이 향상됩니다.

반면, 모든 서비스를 하나의 이미지로 통합해서 관리하는 방식도 존재합니다. 이는 경우에 따라 서버 자원을 절약할 수 있거나 관리의 간소화가 필요한 경우에 유용할 수 있습니다. 그러나 이 방법은 일반적으로 권장되지는 않습니다. 왜냐하면 모든 서비스가 하나의 이미지에 묶여 있으면, 일부 서비스에 문제가 생겼을 때 전체 이미지를 다시 빌드하고 배포해야 할 수 있기 때문입니다.

현업에서 어떻게 사용하는지에 대해서는 조직의 규모, 프로젝트의 성격, 팀의 기술적 능력 등의 여러 요인에 따라 다릅니다. 하지만, 마이크로서비스 아키텍처가 주로 사용되고 있는 요즘은 서비스 단위로 도커 이미지를 분리해서 관리하는 것이 더욱 보편적이고 권장됩니다.

도움이 필요하시면 추가로 말씀해 주세요! 이미지를 사용하는 방식이나 다른 도커 관련 질문이 있다면 언제든지 문의 주시기 바랍니다.

참고문서: Spring Boot Reference Documentation

lim_hook님의 프로필 이미지
lim_hook

작성한 질문수

질문하기