Engine


도커엔진에서 사용하는 기본단위는 이미지와 컨테이너이며, 두가지가 도커엔진의 핵심이다.


앞서 정리했지만, 도커엔진은 컨테이너와 이미지를 생성하고 사용하는데 필요한 기능을 제공하는 경량 런타임 도구이다.




Images


도커에서 이미지는 여러개의 계층으로 된 바이너리 파일로 존재하고, 컨테이너를 생성하고 실행할 때 읽기 전용으로 실행된다.


Format은 다음과 같이 구분된다.


[저장소 이름]/[이미지이름]:[태그]


swifty/ubuntu:14.0.4   or    swifty/ubuntu:latest



저장소 : 이미지가 저장된 장소를 의미, 도커에서 기본적으로 제공하는 이미지 저장소인 Docker Hub를 통해 우분투, CentOS와 같은 이미지를 받을 수 있으며 애플리케이션을 관리하기 위해 개인 저장소를 만들어 이미지를 관리할 수 있다. 이미지를 생성할 때 저장소 이름을 명시할 필요하는 없으므로 생략가능.


이미지 이름: 생략 불가능. 이미지의 역햘 단위로 이름을 지정


태그 : 버전관리 목적





'Cloud & NoSQL & Middleware > Docker' 카테고리의 다른 글

Docker Network (2) - 브리지(bridge) network  (0) 2018.09.17
Docker Network (1) - docker0  (0) 2018.09.14
Docker Container - 명령어 & Volume  (0) 2018.09.09
Docker?  (0) 2018.09.08
Docker in MacOS 설치  (0) 2018.08.04

Docker


- 도커는 리눅스 컨테이너에 여러 기능을 추가함으로써 애플리케이션을 컨테이너로서 좀 더 쉽게 사용할 수 있게 만들어진 오픈소스 프로젝트이다.

- Go 언어로 작성 돼 있다.

- 도커와 관련된 프로젝트는 도커 컴포즈(Compose), 레지스트리, 도커머신, Kitematic 등 여러가지가 있지만 일반적으로 도커 엔진, 도커 관련 프로젝트를 일컫는다.


- 도커는 원래 리눅스에서 작동하는데 최적화 돼 있으므로, 윈도우 혹은 MAC OS에서 사용할 경우 일부 기능의 제약이 있을 수 있다.




가상 머신과 도커 컨테이너


기존의 가상화 기술은 하이퍼바이저를 이용해 여러 개의 운영체제를 하나의 호스트에서 생성해 사용하는 방식이었다.




출처: https://devnet.kentico.com/articles/running-kentico-in-a-docker-container

(기존의 가상화 머신과 도커의 비교)




그러나 각종 시스템 자원을 가상화하고 독립된 공간을 생성하는 작업은 하이퍼 바이저를 반드시 거치기에 일반 호스트에 비해 성능 손실이 발생한다. 즉 가상 머신은 완벽한 운영체제를 생성할 수 있다는 장점은 있지만 일반 호스트에 비해 성능 손실이 있으며, 이에 따른 배포에 부담이 있을 수 있다.


반면 도커 컨테이너는 가상화된 공간을 생성하기 위해 리눅스 자체 기능인 chroot, namespace, cgroup를 사용함으로서 프로세스 단위의 격리 환경을 만들기 때문에 성능의 손실이 거의 없다. 


컨테이너에 필요한 커널은 호스트의 커널을 공유해 사용할 수 있으며, 컨테이너 안에서 사용하는 애플리케이션을 구동하는데 필요한 라이브러리 및 실행파일만 존재하기 때문에 이미지의 크기가 줄어들게 된다.


도커 컨테이너 이미지는 코드, 런타임, 시스템 도구, 라이브러리 및 설정과 같은 애플리케이션 단위의 프로그램을 실행하는데 필요한 모든 것을 포함하는 경량 소프트웨어 패키지다.


컨테이너 이미지를 생성하여 실행(Runtime)할 때 컨테이너가 생성된다. - (이미지는 도커엔진이 실행하여 컨테이너로 만들어준다.)



정리하면 도커 컨테이너의 특징은 간단하게 3가지로 구분할 수 있다.


1) Standard : 컨테이너는 표준화된 소프트웨어이기에 손쉽게 개발, 배포가 가능하다.

2) LightWeight : 컨테이너는 OS의 커널을 공유하기 때문에 애플리케이션 별 OS가 필요하지 않다. 때문에 서버효율성이 증대된다.

3) Secure : 애플리케이션은 컨테이너에서 안전하며, 도커에서 기본적으로 안정성을 제공한다.








'Cloud & NoSQL & Middleware > Docker' 카테고리의 다른 글

Docker Network (2) - 브리지(bridge) network  (0) 2018.09.17
Docker Network (1) - docker0  (0) 2018.09.14
Docker Container - 명령어 & Volume  (0) 2018.09.09
Docker Engine, image  (0) 2018.09.08
Docker in MacOS 설치  (0) 2018.08.04

설치


- Docker는 맥에서 무료로 사용 가능하다.

- MacOS의 버전이 Mac OS Yosemite 10.10.3 이상이 필요하다. 이전 버전일 경우 Docker ToolBox를 이용해야한다.

- Docker for Mac에서 설치가능. 아래 링크 확인




https://docs.docker.com/docker-for-mac/install/










설치 확인


$ docker version


or


$ docker run hello-wolrd











'Cloud & NoSQL & Middleware > Docker' 카테고리의 다른 글

Docker Network (2) - 브리지(bridge) network  (0) 2018.09.17
Docker Network (1) - docker0  (0) 2018.09.14
Docker Container - 명령어 & Volume  (0) 2018.09.09
Docker Engine, image  (0) 2018.09.08
Docker?  (0) 2018.09.08

+ Recent posts