다양한 환경에서 테스트 하기 위해 가상 머신이나 OS를 직접 설치하는 번거로움이 있었다. 이번 포트팅에서는 이러한 번거로움을 없애줄 가상 머신과 유사한 기능을 가지면서 훨씬 가볍고 Host OS의 자원을 보다 효율적으로 활용 가능한 Docker에 대해 간단히 기술 하겠다.
Docker 란?
2013년 3월 Docker, INC에서 출시한 오픈소스 컨테이너 프로젝트이다. 이후 2년이 지난 지금도 많은 사용들에게 사랑을 받고 있다. 그 이유는 다음과 같다. 가상 머신의 단점이 보완된 형태이고 장점을 많이 포함 하고 있기때문이다. 또한 리눅스 뿐만 아니라 윈도우에서도 사용 가능하다. 초기에는 리눅스 기반에서만 동작 하였으나 윈도우에서도 Docker가 가능하다.
Docker VS Virtual Machine
그림은 Docker Container와 VM의 동작원리를 간단하게 표현한 것이다. 가상 머신은 동일한 Server의Host OS 위에 Hypervisor(VMWare, KVM, Virtual Box etc)가 설치 된 후에 다시 Guest OS를 설치 하고App들을 동작 시킨다. Docker는 또한 Server의 Host OS 위에 Docker Engine을 설치한다. 다른점은 가상머신은 Host OS의 자원과 커널을 사용하지 않고 Guest OS를 설치하여 가상머신의 자원을 활용한다. 하지만 Docker는 Host OS의 커널을 그대로 사용하되 Host OS와 Container OS의 다른 부분만Container 내에 같이 존재한다. 따라서 Container에서 명령어를 실행하면 실제로 수행 되는 위치는Host OS에서 Host OS 자원을 활용하여 실행 되고, 다른 부분이 있으면 해당 부분에 대한 자원은Container에서 가져다 쓰고 Host OS의 프로세스를 공유한다.
Docker의 장점
Docker는 다양한 장점을 가지고 있다. 하나는 Host OS의 자원을 거의 모두 사용할 수 있어서, 기존의 가상머신에서 App을 동작 시키는 것 보다 성능면에서 좋다.
둘째는 Docker는 Container다르게 설정하여 Container를 push해 놓고 Docker만 설치되어 있다면 어디에서든 설정해 놓은 환경에 접속을 할 수 있다는 것이다.
셋째는 Docker의 Container들은 버전 관리가 가능 하다는 점이다. 이 점을 활용하여 개발 환경의 관리가 가능하다.
이보다 많은 장점을 가지고 있지만 전체를 본 상태가 아니기 때문에 설명은 여기까지 하고 Centos7을 기준으로 간단한 설치 과정을 보이겠다.
Docker 설치 과정
[agens@localhost ~] $ sudo yum install docker.x86_64
[agens@localhost ~] $ sudo firewall-cmd –add-port=4243/tcp
[agens@localhost ~] $ sudo service docker restart
[agens@localhost ~] $ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
[agens@localhost ~] $ sudo docker pull ubuntu
[agens@localhost ~] $ sudo docker run –I –t Ubuntu:14.04 /bin/bash
[root@aa2b357fa844 ~] $
[agens@localhost ~] $ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORT
Aa2b357fa844 Ubuntu:14.04 “/bin/bash” 7hours ago Up 7 hours fervent_Hodgkin
Posted by Bitnine(비트나인)
'ARCHIVES' 카테고리의 다른 글
JavaScript 문장 끝의 ;에 대해 (0) | 2015.10.16 |
---|---|
PostgreSQL vs MongoDB (0) | 2015.09.23 |
아젠스(Agens) SQL의 장점 (0) | 2015.09.23 |
아젠스(Agens) SQL 제품소개 (0) | 2015.09.23 |
아젠스 솔루션(Agens Solution)의 구성 (0) | 2015.09.23 |