공식 문서 많이 읽어보기
Docker 공식문서
도커를 배우기 전에 가상화와 컨테이너를 먼저 알아보자
가상화(Virtualization) 란?
하나의 물리적인 컴퓨터 자원(CPU, 메모리 등)을 가상적으로 분할, 여러 개의 가상 컴퓨터 환경을 만들어 내는 기술.
이를 통해 물리적인 컴퓨터 자원을 더욱 효율적으로 사용, 서버나 애플리케이션 등을 운영하는데 있어 유연성과 안정성을 제공한다.
즉, 고성능 서버를 조금 더 안정적이고 효율적으로 사용할 수 있도록 해준다.
하이퍼바이저 란?
- 가상머신(Virtual Machine, VM)을 생성, 구동하는 소프트웨어
- OS를 통해 Guest OS에 자원을 할당 및 조율
- OS들의 요청을 번역, 하드웨어에 전달
- 호스트 운영체제와는 분리, 독립적인 커널과 애플리케이션을 가짐.
- 아주 무겁고 느리다.
Container 란?
- 가상화 기술 중 하나
- 호스트 운영체제 위에 여러 개의 격리된 환경을 생성
- 각각의 컨테이너 안에서 애플리케이션을 실행
즉, 애플리케이션을 실행할 때 중복되어 실행되는 오버헤드가 크고 불필요한 Guest OS를 생략하고 정말 필요한 것들만 격리해 실행시키는 것이 컨테이너이다. 이런 컨테이너 기술 중에 가장 널리 사용되고 있는것이 도커이다.
그렇다면 Docker는 무엇일까?
- 도커는 컨테이너 기반의 가상화 도구이다.
- 리눅스 컨테이너 기술인 LXC(Linux Containers) 기반
- 인프라를 애플리케이션을 관리하는 것 처럼 관리할 수 있다.
- 애플리케이션을 컨테이너라는 단위로 격리하여 실행 및 배포하는 기술이다.
- 다양한 OS에서 사용할 수 있으며, 컨테이너화된 애플리케이션을 쉽게 빌드, 배포, 관리할 수 있는 다양한 기능을 제공한다.
- 위 기능들을 통해 애플리케이션을 빠르게 개발, 효율적 배포, 관리할 수 있다.
도커 활용 예제
한 디바이스에서 여러 애플리케이션을 실행하고 싶을때 도커의 컨테이너를 활용해 구축할 수 있다.
참고문헌