※ 본 포스팅은 21.06.03에 게시된 글을 이전한 것 입니다.
컨테이너 기술 배경
컴퓨터 프로그램들은 환경이 바뀔 때마다 각종 오류가 발생하는데 이를 방지하기 위해 다른 환경으로 이동하더라도 안정적으로 실행되도록 하기 위해 나온 기술
최근 클라우드 컴퓨팅에서 하이퍼바이저 기반의 가상화 기술을 컨테이너 기술이 대체
컨테이너
하나의 OS환경에서 애플리케이션을 실행하기 위한 영역을 여러개로 나누어 사용하는 것
다시 말해 모듈화되고 격리된 컴퓨팅 공간 또는 환경 이때 각각의 공간을 '컨테이너' 라고 일컬음 또한 컨테이너는 하나의 OS환경에서 돌아가므로 OS를 제외하고 어플리케이션 실행에 필요한 모든 파일만을 패키징한 형태임
이 각각의 컨테이너는 다른 컨테이너에게 영향을 미치지 않고 어플리케이션 실행이 가능함
호스트 OS입장에서 볼때 컨테이너는 프로세스, 쉽게 말하면 컨테이너는 어플리케이션 실행환경을 가상화함
운영체제의 커널이 여러 격리된 사용자 공간 인스턴스를 갖출 수 있도록 하는 가상화 방식 = 'OS레벨 가상화' 라고 일컬음
컨테이너 장점
- 가상화 오버헤드가 적기 때문에 빠르게 시작하고 정지할 수 있으며 성능저하가 거의 없음→ 경량화
- → 패키지 화 되어있어 기존의 시스템을 실행하는식으로 구동이 됨
- 게스트 OS를 따로 마련할 필요가 없어, 디스크사용량 줄일 수 있음 → 경량화
- 개별 컨테이너가 요구하는 하드웨어 리소스가 적어, 1대의 물리 서버에 매우 많은 수의 컨테이너를 탑재할 수 있음
- 애플리케이션 실행환경이 컨테이너 단위로 포장되어 있으므로 복제 이식이 간편
- 운영체제 위에 하나의 어플리케이션이 동작하는 것과 동일한 수준의 컴퓨팅 자원만 필요 + 축소 확장 가능→ 컴퓨팅 자원
컨테이너 단점
- 운영체제는 커널을 공유해, 윈도우즈 이미지는 윈도우에서만 실행 가능리눅스는 리눅스에서 맥용은 맥에서만 가능
- 하나의 호스트 OS에서 여러개의 컨테이너를 동작시켜, 하나가 공격 받을 경우 다른 컨테이너가 위험에 노출 →안전성
※ 대표적인 기술 = 도커
Uploaded by
N2T