반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |
Tags
- 스프링부트
- 스프링 부트 입문
- assertThat
- 스프링 부트 기본
- 스프링 부트
- resultMap
- JPA
- SQL
- 스프링
- mybatis
- db
- jdbc
- Javascript
- 스프링 프레임워크
- kafka
- Effective Java
- 필드 주입
- DI
- 생성자 주입
- 스프링 빈
- 스프링 컨테이너
- thymeleaf
- assertThrows
- sqld
- spring
- DIP
- @Configuration
- 싱글톤
- springboot
- java
Archives
- Today
- Total
선 조치 후 분석
[Docker] 도커 (Docker) 란?? 본문
728x90
반응형
SMALL
도커 (Docker)
- Go언어로 작성된 리눅스 컨테이너 기반의 가상화 플랫폼
- 독립된 환경을 만들어서 하드웨어를 효율적으로 활용하는 기술
- 즉, 특정 서비스를 패키징하고 배포하는데 유용한 오픈소스 프로그램
※ 하이퍼바이저 및 가상화 그리고 컨테이너에 대한 개념을 알고 싶다면 작성해 둔 내용을 참고하자
도커를 사용하는 이유?
애플리케이션 독립성을 가진다. 다른 컨테이너와도 독립된 공간을 보장받아 충돌이 발생하지 않는다.
컨테이너 내부에 작업 후 배포하려 한다면 도커 이미지로 만들어서 운영 서버에 전달만 하면 된다.
마이크로 서비스 구조로 변화가 쉽다. 컨테이너 하나당 하나의 기능을 제공하는 모듈로 만드는 등 조정이 가능하다.
즉, 환경에 구애받지 않고 애플리케이션을 신속하게 배포, 확장 가능하다.
도커 이미지 (Docker Image)
- Docker Image란 컨테이너를 실행할 수 있는 실행파일 (읽기 전용)
- 컨테이너가 실행되기 위한 종속성(필요 파일, 라이브러리 등) 모두 가지고 있다.
- 즉, Docker Image만 있다면 어떤 환경에서든 같은 컨테이너를 돌릴 수 있다.
도커 컨테이너 (Docker Container)
- 도커 이미지를 실행한 상태(프로세스)
- 이미지로 컨테이너를 생성하면 이미지의 목적에 맞는 파일이 들어있는 파일 시스템과 격리된 시스템 자원 및
- 네트워크를 사용할 수 있는 독립된 공간
익숙한 VMware나 VirtualBox 같은 가상머신은 호스트 OS 위에 Guest OS 전체를 가상화하여 사용하는 방식이다.
이 방식은 여러 가지 OS를 가상화할 수 있고, 비교적 사용법이 간단하지만 무겁고 느려서 운영환경에선 사용할 수
없었다.
이를 개선하기 위해 프로세스를 격리하는 방식이 등장한다. 단순히 프로세스를 격리시키기 때문에 가볍고 빠르게
동작한다. CPU나 메모리는 딱 프로세스가 필요한 만큼만 추가로 사용하고 성능적으로도 거의 손실이 없다.
도커 이미지 (Docker Image) | 도커 컨테이너 (Docker Container) |
컨테이너의 설계도 | 도커 이미지 인스턴스 |
변형 불가 | 쓰기 가능 |
컨테이너 없이 존재 가능 | 컨테이너는 이미지를 실행시켜야 존재 |
컴퓨팅 자원을 필요로 하지 않음 | 실행을 위해 컴퓨팅 자원 필요 |
공개/비공개 레지스트리 플랫폼으로 공유 | 이미 실행중인 개체는 공유 필요 없음 |
단 한번만 생성 | 같은 이미지로부터 다수의 컨테이너 생성 |
728x90
반응형
LIST
'Solution > Docker' 카테고리의 다른 글
[가상화] 하이퍼바이저 vs 컨테이너? 차이점 및 개념 (0) | 2023.11.20 |
---|