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 |
Tags
- stream
- jwt
- redis
- 인덱스
- 생성자 주입
- 조합
- DDL
- SQL
- cache
- java
- StringBuilder
- DI
- Spring
- equals
- VUE
- 열 속성
- 바이너리 카운팅
- lambda
- select_type
- KEVISS
- 재정의
- 필드 주입
- Test
- 테스트 코드
- MSA
- AOP
- hashcode
- docker
- jpa
- static
Archives
- Today
- Total
백엔드 개발자 블로그
1. 컨테이너 가상화 이해 본문
컨테이너 기술이란?
애플리케이션과 종속 항목을 하나로 하나로 묶어, 실행하게 해주는 운영시스템을 가상화하는 기술
사용하는 이유
- 언제 어디서든 빠르고 효율적으로 배포 가능하다.
- 확장성 (multi cluster)
- 서버 구성, OS 설치, 네트워크, 개발 도구 구성 등의 반복적인 작업을 대신 처리하여 개발에 집중할 수 있게 해준다.
- 최소한의 Image를 통해 실행되므로 가볍다.
- 빠르게 실행 가능(run)하고, 한 번에 여러 개의 컨테이너 동시 실행 가능하다.(docker compose)
- 어떤 환경에서도 동작 가능하여 이식성이 좋다. (docker platform만 깔려있으면 됨)
- 지속적인 서버 관리 비용이 절감된다. (애플리케이션 환경에 대한 관리만 요구됨)
- 개발팀(소스코드 작성)과 운영팀(Image 제공)의 업무 분리로 각자의 업무에 집중 가능하다.
타입
- 시스템 컨테이너
- 호스트OS 위에 Ubuntu와 같은 배포판 리눅스 Image를 통해 배포되는 컨테이너
- 애플리케이션 컨테이너 (주로 사용)
- 단일 애플리케이션 실행을 위해 서비스를 패키징하고 실행하도록 설계된 컨테이너
- 라우터 컨테이너
가상화란?
하드웨어 리소스를 효율적으로 사용할 수 있도록 소프트웨어적으로 추상화하는 기술
사용사례
- 자동화된 IT 관리
- 빠른 재해 복구
VM 가상화와 컨테이너 가상화 비교
- 공통점
- 이미지화하여 HostOS와 격리된 환경을 제공한다.
- 차이점
- VM : GuestOS를 두고 원하는 애플리케이션 설치하는 하드웨어 수준의 가상화 -> 부팅 있음
- 컨테이너 : HostOS의 커널 공유하는 OS 수준의 가상화 -> 부팅없이 빠르게 실행 가능
컨테이너 기술
- 초기에는 리눅스 컨테이너 기술인 LXC을 컨테이너화를 했다.
- 커널 기술을 공유하여 컨테이너에 제공
- 시스템 컨테이너 생성 기술
- 애플리케이션 컨테이너가 출시되면서 containerd, runC 방식으로 바뀌었다.
- runC : 커널 기술의 공유를 통해 컨테이너 생성을 지원
- containerd : 컨테이너의 라이프 사이클 관리를 지원
- dockerd : 사용자 환경에서의 명령을 전달
테스트 환경
https://www.docker.com/play-with-docker/
- 설치없이 가상화환경에서 Docker를 사용해볼 수 있다.
- 주의사항
- docker 계정이 있어야 사용이 가능합니다.
- 4시간 후 사라집니다.
정리
- Docker는 컨테이너 가상화 기술이다.
- 컨테이너 : 애플리케이션과 종속 항목을 하나로 묶어, 바로 실행가능하게 하는 운영 시스템의 가상화 기술이다.
- 가상화 : 하드웨어 자원을 효율적으로 사용할 수 있도록 소프트웨어적으로 추상화하는 기술이다.
- VM 가상화와 컨테이너 가상화 비교
- OS 수준의 가상화이기에 GustOS가 필요없어서 용량이 적고, 부팅없이 빠르게 실행이 가능하다.
- 작동원리
- dockerfile 빌드 -> Image 생성 -> Image 실행 -> 컨테이너 생성
- 사용하는 이유
- 가볍다.
- 실행이 빠르다. 동시 실행이 가능하다.
- 이식성이 좋다. (docker platform만 있으면 된다.)
- 실행 환경 세팅 시간을 줄일 수 있다.
'CI CD > Docker' 카테고리의 다른 글
4. Docker Image 이해 (0) | 2024.05.22 |
---|---|
Docker 개념 (0) | 2023.08.22 |