목차
- 1.1 가상 머신과 도커 컨테이너
- 1.2 도커를 시작해야 하는 이유
- 1.2.1 애플리케이션의 개발과 배포가 편해집니다.
- 1.2.2 여러 애플리케이션의 독립성과 확장성이 높아집니다.
- 1.3 도커 엔진 설치
- 1.3.1 도커 엔진의 종류 및 버전
- 1.3.2 리눅스 도커 엔진 설치
- 1.3.3 윈도우, 맥 OS에 도커 설치
- 1.3.4 리눅스 환경에 도커 마련하기
01 도커란?
도커는 애플리케이션을 컨테이너로서 사용할 수 있게 만들어진 Go 언어 기반의 오픈소스 프로젝트다.
리눅스 컨테이너에 여러 기능을 추가해 만들어졌다.
가상 머신과 달리 성능의 손실이 거의 없다.
일반적으로 도커는 도커 엔진 또는 도커와 관련된 모든 프로젝트를 의미한다.
💡도커 엔진(Docker Engine)이란?
컨테이너를 생성하고 관리하는 주체
도커의 여러 프로젝트는 도커 엔진을 좀 더 효율적으로 사용하기 위한 것에 불가하다.
→ 도커 엔진 사용 방법을 익히는 것은 도커와 관련된 모든 프로젝트를 능숙하게 다루는 첫 걸음
1.1 가상 머신과 도커 컨테이너
기존의 가상화 기술은 하이퍼바이저를 이용해 여러 OS들을(Guest OS)를 하나의 호스트에서 생성해 사용하는 방식
ex) VirtualBox, VMware 등
가상 머신은 하이퍼바이저를 통해 각종 시스템 자원을 가상화하고 독립된 공간을 생성하므로 성능 손실 발생
완벽한 OS를 생성할 수 있다는 장점에 비해 무거운 가상 머신 이미지의 배포와 운영은 부담스럽다.
OS와 완전히 독립된 가상머신과 달리, 도커 컨테이너는 리눅스 자체 기능(chroot, namespace, cgroup 등)을 사용해 프로세스 단위의 격리 환경을 만들어 성능 손실이 거의 없다.
컨테이너 안에는 애플리케이션 구동에 필요한 라이브러리 및 실행 파일만 존재하므로 이미지 크기도 가벼워 생성과 배포에 용이하다.
1.2 도커를 시작해야 하는 이유
도커를 시작해야 하는 이유는 크게 2가지가 있다.
- 편한 애플리케이션 개발과 배포
- 여러 애플리케이션의 독립성과 확장성을 높일 수 있다.
1.2.1 애플리케이션의 개발과 배포가 편해집니다.
컨테이너 내부는 호스트 OS에 영향을 끼치지 않으므로, 독립된 개발 환경을 보장 받는다.
운영 환경 배포시에는 컨테이너에 사용되던 패키지를 운영 서버에 설치할 필요가 없다.
서비스 개발 당시의 환경을 복제해 컨테이너를 새로 생성할 수 있기 때문이다.
도커는 이미지 내용을 레이어 단위로 구성하며, 중복되는 레이어 재사용이 가능하므로 애플리키에션의 배포 속도가 매우 빠르다.
1.2.2 여러 애플리케이션의 독립성과 확장성이 높아집니다.
💡모놀리스(Monolith) 애플리케이션 이란?
소프트웨어 여러 모듈이 상호 작용하는 로직을 하나의 프로그램 내에서 구동시키는 방식
모놀리스 애플리케이션은 소규모 서비스에는 어울릴 수 있지만, 기능이 복잡해지고 거대해질수록 확장성과 유연성이 줄어드는 한계가 있다.
이를 대체하기 위한 개념이 마이크로 서비스(Microservices) 구조이며 이에 도커가 사용된다.
마이크로 서비스 구조는 여러 모듈을 독립된 형태로 구성하기 때문에 빠른 변화 대응과 쉬운 모듈 관리가 특징이다.
도커 컨테이너는 수초 내로 생성, 시작이 가능하고 여러 모듈에게 독립된 환경을 동시에 제공할 수 있다.
1.3 도커 엔진 설치
도커는 다양한 운영체제에서 사용할 수 있다. Go언어로 구현한 libcontainer를 사용해 리눅스 컨테이너를 제어하는 API를 사용할 수 있어 대부분의 리눅스 운영체제에서 도커를 사용할 수 있다.
1.3.1 도커 엔진의 종류 및 버전
도커 엔진은 2017년부터 도커 EE/CE로 구분되어 제공되며, 버전명은 “출시년도-출시월-도커엔진종류”의 형태로 변경되었다.
도커 EE (Docker Enterprise Edition)
기업용 유료 제품으로 각종 기술 지원 및 실제 서비스 단계에 필요한 부가 기능들을 제공
3개월 마다 안정화된 버전으로 릴리스된다.
도커 CE (Community Edition)
무료로 제공되는 도커 엔진으로 별도의 기술 지원 및 서비스를 제공하지는 않지만, 도커 엔진 자체의 핵심 기능을 무료로 사용할 수 있다.
stable, edge 버전으로 구분해 각각 3개월, 1개월 단위로 릴리스 된다.
책에서는 도커 CE를 기준으로 설명한다.
도커 CE edge버전은 새로운 기능을 먼저 사용할 수 있지만, 각종 버그가 발생할 수 있으므로 stable버전을 권장한다.
1.3.2 리눅스 도커 엔진 설치
생략
1.3.3 윈도우, 맥 OS에 도커 설치
생략
1.3.4 리눅스 환경에 도커 마련하기
생략
'Dev > Docker' 카테고리의 다른 글
[시작하세요! 도커/쿠버네티스] 서문 (0) | 2025.03.24 |
---|---|
[Docker] Docker 컨테이너 기본 시간대 설정 (1) | 2024.11.11 |