컨테이너Container
Container
앱과 필요한 실행 구성 요소를 이미지로 묶어, 격리된 프로세스로 실행하는 방식이에요.
쉽게 비유하면
필요한 도구를 같은 규격의 작업 상자에 담아 여러 현장에서 비슷하게 쓰는 것과 같아요.
조금 더 자세히
이미지는 실행에 필요한 파일과 설정의 틀이고, 컨테이너는 그 이미지를 실행한 인스턴스예요. 일반적인 운영체제 컨테이너는 호스트 커널을 공유하면서 프로세스와 자원을 격리해요.
환경 차이를 줄일 수 있지만 모든 OS와 CPU에서 같은 이미지가 동작하는 것은 아니에요. 저장 데이터는 별도 볼륨 등에 두고 네트워크·권한도 설정해야 해요.
왜 생겼나요
개발 환경에서는 되는데 배포 환경에서는 안 되는 문제를 줄이고, 앱 실행 단위를 일관되게 전달하려고 활용해요.
어떻게 작동하나요
- 1. 이미지 준비 앱과 필요한 의존성을 이미지로 만들어요.
- 2. 격리 실행 런타임이 프로세스와 자원을 구분해 실행해요.
- 3. 외부 자원 연결 네트워크, 설정과 영속 저장소를 연결해 운영해요.
활용 예시
- 같은 앱의 개발·시험 환경 구성
- 서비스별 실행 단위 분리
- 반복 작업의 실행 환경 고정
흔한 오해
컨테이너는 작은 가상 머신인가요?
일반적인 컨테이너는 호스트 커널을 공유하고, 가상 머신은 자체 운영체제 커널을 실행해요. 격리 방식과 보장 범위가 같지는 않아요.
이렇게 쓰여요
앱 배포 준비
“이미지는 같은 버전으로 쓰고, 설정과 저장 데이터는 컨테이너 밖에서 관리하자”라고 이야기해요.
관련 용어
함께 보면 좋은 용어
최종 업데이트