코딩무비

[Docker] 1. 도커란?

by 코딩무비
반응형

 

도커(Docker)
  • 리눅스 컨테이너에 여러 기능 추가, 좀 더 쉽게 사용할 수 있게 만들어진 오픈소스 프로젝트
  • 가상머신과 달리 성능의 손실 거의 없음
  • Docker Compose, 레지스트리, 가상머신 등

도커 엔진 : 컨테이너 생성하고 관리하는 주체

 

가상머신 vs 도커 컨테이너

 

 

기존 가상화 기술
  • 하이퍼바이저 이용하여 여러 개의 운영체제를 하나의 호스트에서 생성해 사용하는 방식
  • 가상머신이라는 단위로 구별, 각 가상머신에 우분투, CentOs 등 운영체제 설치
  • 게스트 운영체제 : 하이퍼바이저에 의해 생성되고 관리되는 운영체제,
    완전히 독립된 공간과 시스템 자원 할당
  • 가상 머신은 라이브러리, 커널 등 모두 포함 - 이미지 크기 ↑
  • 완벽한 운영체제 생성, but 일반 호스트에 비해 성능 손실, 이미지 크기 부담
도커 컨테이너
  • 리눅스 자체 기능인 chroot, 네임스페이스(namespace), cgroup 사용하여 가상화
  • 프로세스 단위의 격리 환경을 만들기 때문에 성능 손실 거의 없음
  • 컨테이너에 필요한 커널은 호스트의 커널과 공유
  • 컨테이너 안에는 애플리케이션을 구동하는 데 필요한 라이브러리, 실행파일만 존재
  • 이미지 용량 ↓

 

가상머신 vs 도커 컨테이너

 

장점

애플리케이션 개발,배포 편리
  • 도커 컨테이너는 호스트 OS 위에서 실행되는 격리된 공간
    -> 수많은 소프트웨어를 설치해도 호스트 OS 영향 X
  • 독립된 개발 환경 보장
  • 개발/운영 환경의 통합 가능
    컨테이너에서 운영환경에 배포할 때 "도커 이미지"로 전달
    사용했던 환경을 다른 서버에서의 컨테이너에서 똑같이 복제
  • 도커 이미지는 커널을 포함하지 않음 -> 이미지 크기 ↓
여러 애플리케이션의
독립성 확정성 ↑
  • 컨테이너는 수 초 내로 생성,시작 뿐만 아니라 독립된 환경을 제공하므로 마이크로서비스 구조에 유용
  • ex) 웹서비스는 데이터베이스 컨테이너 + 웹 서버 컨테이너로 분리 가능
  • 웹 서비스에 부하 발생 시 웹 서버 컨테이너만을 동적으로 늘려 부하 분산 가능

 

모놀리식 vs 마이크로서비스

Monolithic vs Microservice

Monolithic

정의
  • 하나의 서비스 or 애플리케이션이 거대한 아키텍처
장점
  • 개발 초기에는 단순한 아케틱처 구조로 개발이 간단함
  • 개발 환경이 같아서 복잡하지않다.
단점
  • 규모가 커질 수록 확장성, 유연성 ↓
  • 모듈에 버그하나만 있어도 전체 애플리케이션 영향
  • 전체 코드가 몰려 있으므로 유지보수 어려움
  • 수정사항이 있을 시 전체 코드 빌드, 배포

 

 

MicroService

정의
  • 여러 모듈을 독립된 형태로 구성한 아키텍처
장점
  • 독립된 환경이 제공되므로 개발 환경을 자유롭게 가능
  • 수정사항 있을 시 빠르게 빌드, 배포 가능
  • 오류가 있을 경우 해당 서비스에만 영향을 끼침
단점
  • 많은 서비스들이 분산되어 있으므로 관리하는 데 어려움
  • 적절한 서비스로 분해하는 것이 어려움
  • 테스트가 간단하지 않음

 

 

도커 설치

 

우분투 
curl -fssL https://download.docker.com/linux/ubuntu/gpg | sudo-apt-key add -

add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

apt-get update

apt-get install docker-ce​

 

CentOS
yum install -y yum-utils
yum-config-manager \
-add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

yum install -y docker-ce
systemctl start docker

 

 

설치 확인

docker info

 

결과 

 

출처

 

시작하세요! 도커/쿠버네티스

 

반응형

'도커' 카테고리의 다른 글

aws cloudwatch  (5) 2022.04.14
컨테이너 로깅  (6) 2022.03.30
[Docker] 4. 도커 네트워크  (8) 2022.03.24
3. 컨테이너 애플리케이션 구축  (4) 2022.03.22
2. 이미지, 컨테이너  (4) 2022.03.21

블로그의 정보

코딩무비

코딩무비

활동하기