본문 바로가기
카테고리 없음

Docker(컨테이너, 쿠버네티스, PaaS) 용어 정리

by evankim 2020. 2. 24.
728x90
반응형

요즘 IT에서는 Docker라는 Hot 이슈가 있습니다. 그렇다면 Docker란 무엇 일까요?

Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼입니다. Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있으며, Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 개발단에서 개발하여 이미지화여 바로 서비스에 적용이 가능합니다.

Docker 설명 전에

 

 

 

1. WEB Server VS WAS Server

외부망과 WEB (DMZ) 내부망 (WAS)을 위한 망 분리, 이미지 캐싱

Web Server : Apache, Nginx, WebtoB

WAS : Tomcat, JBoss ( Wildfly ), WebLogic, JEUS

 

2. 부하분산 (Load Balancing)

부하를 고루 분담시켜 한곳에 과다하게 집중되는 것을 막는 역할 ( IP Hash, RR )

S/W : Nginx, HAProxy

최근에는 Canary, Blud/Green 배포를 위한 아키텍쳐가 고려가 같이 진행된다.

3. 세션 클러스터링 (Session Clustering)

4. Sticky Session

5. 컨테이너(Container)

From Ubuntu

# 1. ubuntu 설치 (패키지 업데이트)

apt-get update

# 2. ruby 설치

apt-get install ruby

gem install bundler

# 3. 소스 복사

mkdir -p /usr/src/app

scp Gemfile app.rb root@ubuntu:/usr/src/app # From host

# 4. Gem 패키지 설치

bundle install

# 5. Sinatra 서버 실행

bundle exec ruby app.rb

 

* 컨테이너(Container) 장점

자유로운 배포

ü 개발환경, 통합환경, 운영환경 어디든 사용할 수 있고 롤백 또한 쉽게 할 수 있다.

서버 한대로 가상 환경을 구축

ü 베어메탈 서버 구성만으로 가상화 서버처럼 구성할 수 있다.

이식성

ü Docker 컨테이너 이미지는 물리, 가상, 퍼블릭 클라우드 등 쉽게 배포가 가능하다.

마이크로 서비스

ü Docker 컨테이너를 통해 표준화된 코드 배포를 활용하여 분산 애플리케이션 아키텍처를 구축하고 확장 가능하다.

 

* 컨테이너(Container) - 개발자 

Write Once, Run Anywhere

이식 가능한 런타임 환경을 손쉽게 만들 수 있다.

앱마다 다양한 버전의 라이브러리 및 기타 종속성을 실행할 수 있다.

Microservices, DevOps, CI/CD 를 관리하기 쉽다.

특정 플랫폼과의 호환성에 대한 우려를 줄일 수 있다.

 

6. 도커 이미지 (Docker Image)

이미지는 시스템과 서비스에 필요한 코드를 모아둔 최소한의 단위를 뜻함.

도커는 실행에 필요한 시스템과 서비스를 운영하는데 필요한 단위를 컨테이너(container)라는 개념을 사용하는데 컨테이너는 이미지를 기반으로 운영됨 도커 이미지는 도커가 설치된 곳이라면 어디서든 컨테이너로 작동시킬 수 있음

 

7. 도커 레지스트리 (Docker Registry)

 

 

반응형