1. 컨테이너란?

로로·2024년 1월 14일
0

Contents

  1. 컨테이너를 배워야하는 이유
  2. 왜 리눅스에서 실행할까?
  3. 일반 프로그램 vs 컨테이너
  4. 컨테이너 사용 이유

1. 컨테이너 역사

위의 사진에서 왼쪽에서 오르쪽으로 소프트 웨어 운영 플랫폼이 바뀌고 있다.

하이퍼바이저는 가상머신을 구동할 수 있게 해주는 소프트웨어로, Docker는 하이버바이저 구조를 토대로 등장했고 각 컨테이너 안에 다른 환경을 구축할 수 있다.

App 환경에 맞추어 독립된 공간인 컨테이너 생성

  • 라이브러리
  • sw 플랫폼


2. 왜 리눅스에서 실행해야하는가

리눅스 커널의 기능으로 만들어졌기 때문에, 리눅스 커널이 없으면 컨테이너를 돌릴 수 없다.

커널 기능

  • chroot : 독립된 공간 형성
  • namespace : 독립된 공간안에 6가지의 isolate 기능
  • cgroup : 필요한 HW 할당

window, mac 에서 사용하려면 리눅스엔진 활성화 필요



3. 일반 프로그램 vs 컨테이너 차이점

=> 구조가 다름

Dockerfile 생성 -> build -> Container 생성

Dcokerfile 예시

FROM node:12
COPY 
ENTRYPOINT

node app.js 실행
nodejs



4. 컨테이너 사용하는 이유?

  • 프로그램 어디서든 돌아감!
  • 확장/축소 쉬움
    => MSA, DevOps 적합

1. 개발자 개발 컨테이너 기반 app.js

app 운영환경


👉🏻 고객사마다 환경이 다르더라도 동작 가능



2. 확장성

일반은 OS가 같이 확장되어야한다.


👉🏻 하지만 컨테이너는 엔진을 제외하고 컨테이너만 확장되기 때문에 확장/축소가 쉽고 빠름


profile
청로하~🏝️

0개의 댓글

관련 채용 정보