Ⅰ 도커 (Docker)
1. 도커(Docker)란?
- 도커(Docker)는 2013년에 등장한 새로운 컨테이너 기반 가상화도구이다. 지금까지 사용해왔던 VMware, VirtualBox, Xen 등의 가상 머신과 비슷한 기능을 한다고 말할 수 있다. 가상 머신은 항상 Guest OS를 설치해야 하며 이미지안에 OS가 포함되어 있기 때문에 이미지 용량이 크고 속도도 리얼머신에 비해 많이 느리다. 반면 도커는 반가상화보다 좀 더 경량화된 방식으로써 Guest OS를 설치하지 않기 때문에 호스트와 거의 동일한 속도로 가상 머신에 비해 월등히 빠른 속도를 가지고 있다. 이것은 도커가 OS전체를 가상화하는 것이 아니고 컨테이너라고 불리는 리눅스 커널 레벨에서 제공하는 일종의 격리된 가상 공간을 사용하기 때문이다. 도커는 리눅스 컨테이너를 기반으로 해서 편리하게 이미지를 관리하고 배포할 수 있도록 해준다. 또한 악성코드 분석에 있어서 도커의 가장 큰 장점은 이렇게 요약할 수 있다. 도커를 실행할 수 있는 환경만 있으면 분석에 필요한 어플리케이션을 실행할 수 있는 이미지를 다운받고 실행만 시키면 사용이 가능하다는 점이다. 도커 이미지는 실행하는데 필요한 모든 종속성들과 구성들을 포함하고 있기 때문에 사용자가 패키지를 인스톨하고 트러블슈팅할 필요가 없다. 자신의 컴퓨터에서 실행이 되는 이미지라면 도커가 실행되는 어떠한 환경에서도 사용이 가능하다.
2. 이미지(Image)와 컨테이너(Container)
- 도커에는 이미지(Image)와 컨테이너(Container)란 개념이 있다. 이미지는 필요한 프로그램과 라이브러리, 소스를 설치한 뒤 파일로 만든 것이다. 이 이미지를 저장소에 올리고, 받을 수 있고 이미지를 도커에서 실행시킨 후 사용한다. 이때 이미지를 실행한 상태를 컨테이너라고 한다. 이미지를 여러 번 실행시키면 이미지로 여러 개의 컨테이너를 만들 수 있다. 운영체제로 보면 이미지는 실행파일이고 컨테이너는 프로세스라고 할 수 있다.
3. 도커(Docker)의 장점
Rapid application deployment (빠른 어플리케이션 설치)
- 어플리케이션을 설치하고 실행하는데 최소의 시간과 용량을 소요한다.
Portability across machines (어플리케이션의 이식성)
- 실행하기를 원하는 어플리케이션과 그에 필요한 설치파일들이 하나의 컨테이너에 있기때문에 호스트의 커널, 플랫폼등의 버젼에 상관없이 도커가 실행만되면 아무 문제없이 바로 사용이 가능하다.
Version control and component reuse (버젼제어와 컴포넌트 재사용)
- 컨테이너의 버젼체크가 쉽고, 어떤 점이 업데이트 되었는지 확인할 수 있으며 이전 버젼으로 롤백하기가 쉽다. 이전 레이어에서 컴포넌트들을 재사용하기 때문에 도커를 가볍게 만들 수 있다.
Simplified maintenance (쉬운 유지관리)
- 어플리케이션의 종속성에 관한 문제들의 위험성과 수고를 줄여준다.
참고 URL 및 도서
http://blog.nacyot.com/articles/2014-01-27-easy-deploy-with-docker/
https://remnux.org/docs/containers/malware-analysis/
'setting' 카테고리의 다른 글
weblogic classpath 지정하기. (0) | 2016.08.23 |
---|---|
weblogic console에서 배치 등록 에러. (0) | 2016.08.19 |
Docker 도커란? (0) | 2016.07.27 |
사설 Repository Nexus 설치 / 연동 (0) | 2016.07.14 |
rhel6에서 Python 2.7/3.4 설치하기 (0) | 2016.04.06 |