개발바닥

Docker 개념 정리 본문

Docker

Docker 개념 정리

라이언 2022. 2. 24. 14:42
반응형

Docker 란?

Go언어로 작성된 리눅스 컨테이너 기반으로하는 오픈소스 가상화 플랫폼이다.

컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고 빠르게 배포가 위해 설계된 도구이다.

 

컨테이너란?

프로그램을 빌드/실행할 때 그 어떤 기기에서든 똑같은 환경을 조성할 수 있도록 도와주는 패키징 서비스이다.

컨테이너 안에는 프로그램을 실행할 때 필요한 모든 것들이 전부 정의되어 있다.

즉, 코드와 모든 종속성을 패키징화하여 응용 프로그램이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 하는 소프트웨어의 표준 단위이다.

 

기존 사용하던 VM과 컨테이너 차이점

출처 : https://www.docker.com/resources/what-container

그림에서 보면 컨테이너는 도커 엔진 위에서 앱들이 실행되고 기존 VM은 게스트 OS에서 앱이 실행된다.

기존 VM은 호스트 OS 상에서 다른 게스트 OS를 사용하고 있기 때문에 오버헤드가 커진다.

도커 컨테이너는 호스트 OS상에 논리적인 구획(컨테이너)를 만든다. (호스트 OS의 리소스를 논리적으로 분리시키고, 여러 개의 컨테이너가 공유하여 사용한다.)

즉, 도커 컨테이너들은 각각 독립적으로 분리,격리되어 있다.

 

잠시 용어 정리!
호스트 OS는 PC에 처음 설치된 OS
게스트 OS는 PC에 추가적으로 설치된 OS
하이퍼 바이저는 가상머신을 생성하고 구동하는 소프트웨어이다.
오버헤드는 가상화를 수행하기 위해 필요한 CPU 자원, 디스크 용량, 메모리 사용량 등을 말한다.

이미지란?

실행환경에서 움직이는 컨테이너의 바탕이 된다. 

컨테이너 실행에 필요한 파일과 설정값 등을 포함하고 있다.

도커 이미지안에는 컨테이너가 시작시 실행 될 명령어와 파일 스냅샷이 들어있다. 

파일 스냅샷이란? 애플리케이션 설치와 실행에 필요한 파일들

 

도커 이미지 생성하는 순서

1. 도커 파일(Dockerfile)을 작성한다.

(도커 이미지를 만들기 위한 설정 파일, 컨테이너가 어떻게 행동해야 하는지에 대한 설정들을 정의)

2. 도커 클라이언트에 전달  (build)

도커 파일에 입력된 것들이 도커 클라이언트에 전달되어야 한다.

3. 도커 서버에서 컨테이너를 위한 이미지가 이미 캐시 되어 있는지 확인하고 

도커 클라이언트에 전달된 모든 중요한 작업들을 하는 곳

4. 이미지 생성

 

도커 컨테이너 실행

docker run <이미지 이름>

>

반응형
Comments