ARCHIVES

Docker

(주)비트나인 2015. 9. 23. 11:01



다양한 환경에서 테스트 하기 위해 가상 머신이나 OS를 직접 설치하는 번거로움이 있었다. 이번 포트팅에서는 이러한 번거로움을 없애줄 가상 머신과 유사한 기능을 가지면서 훨씬 가볍고 Host OS의 자원을 보다 효율적으로 활용 가능한 Docker에 대해 간단히 기술 하겠다.






Docker 란?


2013년 3월 Docker, INC에서 출시한 오픈소스 컨테이너 프로젝트이다이후 2년이 지난 지금도 많은 사용들에게 사랑을 받고 있다그 이유는 다음과 같다가상 머신의 단점이 보완된 형태이고 장점을 많이 포함 하고 있기때문이다또한 리눅스 뿐만 아니라 윈도우에서도 사용 가능하다초기에는 리눅스 기반에서만 동작 하였으나 윈도우에서도 Docker가 가능하다.






Docker VS Virtual Machine


그림은 Docker Container와 VM의 동작원리를 간단하게 표현한 것이다가상 머신은 동일한 ServerHost 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 설치 과정


1.Centos의 yum 저장소에서 docker.x86_64를 설치한다명령어는 다음과 같다.

[agens@localhost ~] $ sudo yum install docker.x86_64

2.설치가 완료되면 4243 포트를 열어 주어야 한다.

[agens@localhost ~] $ sudo firewall-cmd –add-port=4243/tcp

3.Docker를 재시작 해준다.

[agens@localhost ~] $ sudo service docker restart

4.다음 명령으로 현재 가능한 images를 찾아 본다이미지를 아직 다운 받지 않았기 때문에 아무것도 있지 않다.

[agens@localhost ~] $ sudo docker images

REPOSITORY  TAG  IMAGE ID  CREATED VIRTUAL SIZE

5.Ubuntu 이미지를 pull 해온다.

[agens@localhost ~] $ sudo docker pull ubuntu

6.Pull 해온 Ubuntu 이미지를 실행한다. Bash를 통해 보여주기 위해 마지막 인자로 bash 쉘을 넣어 준다.

[agens@localhost ~] $ sudo docker run –I –t Ubuntu:14.04 /bin/bash

7.정상 적으로 시작 되면 Shell이 다음과 같이 보이게 된다Host 부분이 Docker Container의 ID이다.

[root@aa2b357fa844 ~] $

8.다른 쉘에서 도커가 살아 있는지 확인할 수 있다.

[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