본문 바로가기

클라우드

도커? Docker란? 도커 설치

도커의 로고를 보면 고래가 많은 컨테이너를 실은 모습이다. docker는 부두, 항만 노동자를 의미한다. 즉 컨테이너를 다룬다는 것이다.


기존의 클라우드는 분산되어 있는 서버를 빌려 컴퓨팅 자원을 끌어다가 서버 등을 사용한다. 사용자가 직접 서버 관리를 할 필요가 없어서 비용이 절감된다.


애플리케이션 배포를 자동화하는 오픈소스 엔진

도커는 컨테이너라는 애플리케이션 자동화 기술을 더 쉽게 사용할 수 있도록 만들어졌다. 컨테이너는 설치, 실행에 필요한 정보와 설정과 자료를 한 곳에 모아둔 것이다. 정형화된 규격에 맞춰 제품을 넣으면 운송 수단에 관계 없이 효율적인 운송이 가능해 질 것이라는 아이디어에서 비롯된 것이다.


LXC(LinuX Containers)로 만든 컨테이너는 고유의 파일 시스템, 프로세스, 네트워크 공간을 가진다. 컨테이너는 호스트의 커널을 공유하는 가상 공간이다. 그러므로 컨테이너 안에 커널이나 드라이버를 따로 넣을 필요가 없다. 이것이 가상 머신과의 차이점이다.

초기에는 LXC 사용하다가 0.9 버전부터는 libcontainer를 사용한다고 한다.


이미지는 서비스에 필요한 프로그램, 라이브러리, 소스코드를 묶은 파일이다. OS같은 경우에는 실행파일, 컨테이너는 프로세스이다.


도커 사용자가 자신의 환경을 컨테이너로 구축하여 오픈소스 저장소에 배포하면 다른 사용자가 이를 검색하고 다운받아 자신의 도커 엔진으로 새로운 컨테이너를 구동한다. 도커는 리눅스 환경에서만 구동된다. 리눅스 터미널에서 도커 엔진을 통해 이미지를 검색한다.


도커 vs 가상화

리눅스 컨테이너 기술은 가상화와 비슷한 기술이다. 가상화 기술에는 하이퍼바이저라는 기술이 꼭 필요하다. 하이퍼바이저는 하나의 컴퓨터에서 여러 개의 OS를 사용할 수 있게 한다. 가상화 환경(게스트 OS)은 호스트 OS를 공유한다.


도커는 게스트 OS가 없고 호스트 OS를 바로 사용한다. 하이퍼바이저 대신 도커 엔진이 호스트 OS와 여러 애플리케이션을 연결해준다. 도커를 사용하면 가상화보다 내부에서 더 적은 일을 처리하고 애플리케이션을 빠르고 효율적으로 실행할 수 있다.


도커와 가상화의 장단점

 

 도커

 가상화 

 장점 

 시스템 자원 효율적 사용, 신속한 업데이트 및 롤백, 도커가 설치된 호스트라면 어디서든 컨테이너 실행 가능, 마이크로 서비스 아키텍처에서 좋음, 비즈니스 환경에 신속히 대응, 애플리케이션 이동이 쉽다. 

 다양한 OS 사용 가능

 단점

 보안 문제를 해결해주는 것은 아니다. 가상 머신의 대체물이 아니다. 다양한 OS를 사용하지 못한다. 이미지를 실행해보지 않으면 안에 뭐가 있는 지 알 수 없다.

 배포와 관리 기능 부족, 이미지 안에 OS가 포함되어 있어 용량이 커짐


도커 이미지를 공유하는 Docker Hub가 있다. 소스 코드를 공유하듯이 이미지를 저장소에 push하고 pull할 수 있다. 컨테이너는 이미지를 실행한 상태를 의미한다. OS에 비유하자면 이미지는 실행파일, 컨테이너는 그 실행파일을 실행시켜 생성된 프로세스. 


출처 https://ssola22.tistory.com/12

http://www.ciokorea.com/news/39829

도커 설치 설명 85페이지부터 https://www.slideshare.net/pyrasis/docker-fordummies-44424016

'클라우드' 카테고리의 다른 글

클라우드란?  (0) 2019.02.21