[Docker] 1. 도커란?
by 코딩무비반응형
도커(Docker)
- 리눅스 컨테이너에 여러 기능 추가, 좀 더 쉽게 사용할 수 있게 만들어진 오픈소스 프로젝트
- 가상머신과 달리 성능의 손실 거의 없음
- Docker Compose, 레지스트리, 가상머신 등
도커 엔진 : 컨테이너 생성하고 관리하는 주체
가상머신 vs 도커 컨테이너
기존 가상화 기술
- 하이퍼바이저 이용하여 여러 개의 운영체제를 하나의 호스트에서 생성해 사용하는 방식
- 가상머신이라는 단위로 구별, 각 가상머신에 우분투, CentOs 등 운영체제 설치
- 게스트 운영체제 : 하이퍼바이저에 의해 생성되고 관리되는 운영체제,
완전히 독립된 공간과 시스템 자원 할당 - 가상 머신은 라이브러리, 커널 등 모두 포함 - 이미지 크기 ↑
- 완벽한 운영체제 생성, but 일반 호스트에 비해 성능 손실, 이미지 크기 부담
도커 컨테이너
- 리눅스 자체 기능인 chroot, 네임스페이스(namespace), cgroup 사용하여 가상화
- 프로세스 단위의 격리 환경을 만들기 때문에 성능 손실 거의 없음
- 컨테이너에 필요한 커널은 호스트의 커널과 공유
- 컨테이너 안에는 애플리케이션을 구동하는 데 필요한 라이브러리, 실행파일만 존재
- 이미지 용량 ↓
장점
애플리케이션 개발,배포 편리
- 도커 컨테이너는 호스트 OS 위에서 실행되는 격리된 공간
-> 수많은 소프트웨어를 설치해도 호스트 OS 영향 X - 독립된 개발 환경 보장
- 개발/운영 환경의 통합 가능
컨테이너에서 운영환경에 배포할 때 "도커 이미지"로 전달
사용했던 환경을 다른 서버에서의 컨테이너에서 똑같이 복제 - 도커 이미지는 커널을 포함하지 않음 -> 이미지 크기 ↓
여러 애플리케이션의
독립성 확정성 ↑
독립성 확정성 ↑
- 컨테이너는 수 초 내로 생성,시작 뿐만 아니라 독립된 환경을 제공하므로 마이크로서비스 구조에 유용
- ex) 웹서비스는 데이터베이스 컨테이너 + 웹 서버 컨테이너로 분리 가능
- 웹 서비스에 부하 발생 시 웹 서버 컨테이너만을 동적으로 늘려 부하 분산 가능
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 |
블로그의 정보
코딩무비
코딩무비