도커(Docker)
란 리눅스 컨테이너를 기반으로 특정한 서비스를 패키징하고 배포하는데 유용한 오픈소스 프로그램이다.
개발 이후 마지막 단계는 배포 및 운영 단계다. 보통 AWS 등의 클라우드 서비스를 이용해 배포할 경우 서버 환경에 여러 설정이 필요하다. (JVM, Tomcat 등)
이를 해결하기 위해 컨테이너(Container)
개념이 등장했다. 도커를 설치하면, 컨테이너에 이미지(Image)
를 담아서 구동시키는 방식으로 배포할 수 있다. 컨테이너를 어떻게 만들고, 활용 할지에 대해서는 도커 소프트웨어가 정의해 놓았다.
즉, 배포된 소프트웨어 이미지를 도커를 통해 컨테이너에 올리면 알아서 설정이 이루어진다.
(JVM, Tomcat 등)을 따로 설치할 필요가 없다.
위 그림과 같이 도커 파일(Docker File)을 어떤 소프트웨어를 컨테이너에 담아서 구동시킬 것이다.
라는 것을 명시해 주고 빌드(Build) 해주면, 도커 이미지가 그에 맞게 생성된다.
그 후, 이미지를 구동시키면 도커 컨테이너 위에서 실행된다.
가상화 기능을 사용해 Guest OS
를 만들어낸다.
예를 들어 윈도우 운영체제를 사용하는 사람이 XX 리눅스를 새롭게 가상 머신 위에서 구동시킨다면, 윈도우는 Host OS
이고 XX 리눅스는 Guest OS
입니다. 이런 점에서 Guest OS
와 Host OS
는 서로 의존적이지 않다.
다만 Guest OS
의 I/O
기능이 사실상 Host OS
를 거쳐서 이루어지기 때문에 속도가 느리다는 단점이 있다. 또한 Guest OS
자체가 새로운 운영체제로서 존재해야 되기 때문에 용량이 크다.
Docker Engine 위에서 동작한다.
별도의 Guest OS
가 사용되지 않아서 성능적으로 이점이 있고, 메모리 용량도 작게 차지한다. 다만 사용하고 있는 운영체제와 도커 컨테이너에 의존성이 존재한다.
기본적으로 Windows
운영체제를 사용하고 있는 컴퓨터는, 도커 엔진 위에 올라가는 컨테이너도 Windows Container
야 한다. 도커는 Container
이기 때문에 VM
에 비해 이미지 파일의 크기가 작아 빠르게 이미지를 만들고 실행할 수 있다는 특징이 있다.
변경 불가능한 인프라(Immutable Infrastructure)
도커에서는 이미지를 도커 위에 올리는 것만으로도 배포가 끝난다.
변경 불가능한(Immutable)
의 의미는 상태가 없는(Stateless)
, 확장 가능한(Scalable)
형태이다.
도커로 돌아가는 소프트웨어 자체는 어떠한 데이터도 가지고 있으면 안 되고, 임시 파일 정도만 가지고 있는 상태에서 돌아가야 한다. 즉, 사용자 계정 정보와 같은 실질적인 데이터들은 외부 스토리지로 빼놓아야 한다.
도커는 크게 ① 오픈소스 무료 버전(Community Edition), ② 유료 버전(Enterprise Edition)으로 나뉜다.
기본적으로 CE 버전으로도 도커의 모든 기능을 이용하는데 큰 제약이 없지만 실 서버에 도커를 운용하려면 EE를 사용하는 것이 유리하다. 그러나 도커 유로 버전은 각 서버별로 연간 1,000 달러 이내의 라이선스 비용이 든다.
Docker Engine
과 통신하는 소프트웨어로 개발자가 직접 이용할 수 있다.Docker Engine
을 설치할 수 있는 운영체제 환경을 의미한다.Docker Engine
은 기본적으로 리눅스 OS 위에서 돌아가기 때문에 윈도우에서 Docker Engine
을 이용하려면 가상화 기능이 필요하다.도커 툴박스는 기본적으로 오라클 VM VirtualBox
를 기반으로 동작한다. 쉽게 말하면 윈도우 위에 리눅스 가상 머신을 돌리고, 그 위에서 도커 엔진을 돌리는 방식이라고 이해할 수 있다.
그래서 VM 가상화 기능을 사용할 수 있어야 한다. 윈도우 운영체제에 작업 관리자
의 성능
탭에 들어갔을 때 가상화 기능이 활성화되어있는지 확인해 보자.
가상화 : 사용
으로 되어있으면 이제 도커 툴박스를 설치해 보자.
DockerTollbox-19.03.1.exe
를 눌러 설치를 시작하자.
Docker Client
Docker Machine
Docker Compose
기능Kitematic
Docker QuickStart Shell
오라클 VM VirtualBox
아래 이미지를 보고 잘 따라해보길 바란다.
Docker Quickstart Terminal
을 클릭해 실행시키자.