일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- GitLab
- 알림
- 메시지
- MSA
- 네이버클라우드플랫폼
- 제어루프
- error
- 모니터링 및 경고 중앙화
- 정규표현식
- application 재기동
- ChatGPT
- 자바 정규식
- AWS
- 리눅스
- linux
- 분산추적
- 도커
- Catalina
- MAC
- 가상머신 차이
- eclipse
- 네이버웍스
- desktop
- docker
- crontab
- GIT
- sh
- Chat gpt
- 마이크로서비스 패턴
- chat API
Archives
- Today
- Total
시간나는대로 틈틈히 정리 합시다~~!!!
[Docker] 기본 개념 본문
반응형
1. 도커란?
1) 의미
- 리눅스 컨테이너에 여러 기능을 추가함으로써 애플리케이션을 컨테이너로서 좀 더 쉽게 사용할 수 있게 만들어진 오픈소스 프로젝트
- 보통 도커 엔진이라는 의미로 더 많이 쓰이며 도커 엔진은 컨테이너를 생성하고 관리하는 주체이다.
2) 관련 프로젝트
- 도커 컴포즈(Docker Compose)
- 레지스트리(Private Registry)
- 도커 허브(Docker Hub)
- Docker for Desktop
3) 가상 머신과 도커 컨테이너 차이
가상 머신 | 도커 컨테이너 | ||
App A | App B | App A | App B |
Binarys/Librarys | Binarys/Librarys | Binarys/Librarys | Binarys/Librarys |
Guest OS | Guest OS | Docker Engine | |
Hypervisor | |||
Host OS | Host OS | ||
Server | Server |
4) 주요 항목 설명
항목 | 설명 |
Host OS | 서버를 부팅할 때 실행되는 운영체제. |
Hypervisor | 가상머신(VM, Virtual Machine)을 생성하고 구동하는 소프트웨어. |
Guest OS | 하이퍼바이저에 의해 생성되고 관리되는 운영체제. 각각 Guest OS는 서로 완전히 독립된 공간과 시스템 자원을 할당 받음. |
Docker Engine | 컨테이너를 생성하고 관리하는 주체. |
5) 도커와 가상머신의 장/단점
구분 | 장점 | 단점 |
Virtual Machine | - 완벽한 운영체제를 생성할 수 있음 | - 각종 시스템 자원 가상화 및 독립된 공간 생성 작업이 하이퍼바이저를 반드시 거치기 때문에 성능 손실 발생. - Guest 운영체제를 사용하기 위한 라이브러리, 커널 등을 모두 포함하기 때문에 이미지 크기가 큼. - 수 기가바이트에 달하는 가상 머신 이미지를 애플리케이션으로 배포하기에 부담스러움. |
Docker | - 리눅스 자체기능(chroot, namespace, cgroup)을 사용하여 프로세스 단위의 격리 환경을 제공하기 때문에 성능 손실이 거의 없음. - 호스트의 커널 공유 및 애플리케이션 구동에 필요한 라이브러리 및 실행 파일만 존재하기 때문에 이미지 용량이 가상 머신에 비해 매우 적음 - 이미지 용량이 적기 때문에 가상 머신에 비해 배포 시간이 빠름. - 가상화된 공간을 사용할 때의 성능 손실도 거의 없음. |
6) 도커의 가장 큰 장점
- 애플리케이션의 개발과 배포가 편함
- 여러 애플리케이션의 독립성과 확장성이 높음
7) 모놀리스와 마이크로 서비스 차이
모놀리스(Monolith) | 마이크로서비스(Micro Service) |
- 소프트웨어의 여러 모듈이 상호 작용하는 로직을 하나의 프로그램 내에서 구동 시키는 방식. - 서비스의 기능이 복잡해지고 거대해질수록 확장성과 유연성이 줄어듬. |
- 모놀리스의 단첨을 대체하기 위해 나온 개념. - 여러 모듈을 독립된 형태로 구성하기 때문에 언어에 종속되지 않고 변화에 빠르에 대응할 수 있고, 각 모듈의 관리가 쉬워짐. |
2. 기본 단위
1) 도커 이미지
- 가상머신에서 사용되는 iso 파일과 비슷한 개념
- 컨테이너를 생성하고 실행 할 때 읽기 전용으로 사용
- 형태 1 => gitlab/gitlab-ce:latest
gitlab | / | gitlab-ce | latest |
저장소 이름 | 이미지 이름 | 태그 |
- 형태 2 => gitlab-ce:latest
gitlab-ce | latest |
저장소 이름 | 태그 |
- 항목 설명
항목 | 설명 |
저장소 이름 | - 이미지가 저장된 장소 - 보통 명시되지 않은 경우 도커 허브 혹은 공식 이미지를 뜻함 - 필수 값은 아님 - 저장소 이름 앞에 접두어(docker.io/, gcr.io)를 붙여 어느 저장소인지 추가로 적기도 함 |
이미지 이름 | - 해당 이미지가 하는 역할 - 필수 값 |
태그 | - 이미지의 버전 |
2) 도커 컨테이너
- 다양한 이미지(OS, DB, 웹서버, 빅데이터 분석 도구 등)로 해당 이미지의 목적에 맞도록 파일 시스템과 격리된 시스템 자원 및 네트워크를 사용할 수 있는 독립된 공간을 생성한 것.
- 이미지를 읽기 전용으로 사용하며 이미지에서 변경된 사항만 컨테이너 계층에 저장하므로 무엇을 하든지 원래 이미지는 아무런 영향을 받지 않음
- 동일한 이미지로 생성한 다른 컨테이너들과도 아무런 영향을 주고받지 않음
반응형
'IT' 카테고리의 다른 글
[Docker] 기본 명령어 (0) | 2021.06.09 |
---|---|
[Docker] 리눅스에 도커 엔진 설치 (0) | 2021.06.08 |
java.lang.* 클래스 정리 (0) | 2021.05.28 |
[Docker] Mac Docker Desktop 버전에 CentOS 7 설치 하기 (0) | 2021.05.25 |
[Docker] Mac Docker Desktop에 GitLab 을 설치해보자. (0) | 2021.05.22 |
Comments