1. 도커란?
도커는 컨테이너 기반의 오픈소스 가상화 플랫폼으로, 개발자와 시스템 관리자가 app을 develop, deploy, and run을 컨테이너를 통해 할 수 있게 해준다.
도커가 등장하기 이전 기존의 서버 관리 방식은 매우 복잡했다. 시간이 흐르면서 서버관리를 위한 환경이 계속 바뀌고, 마이크로서비스 아키텍처가 유행하며 관리는 더욱 복잡해졌다.
하지만 도커가 등장하며 서버 관리의 흐름을 완전히 바꾸어버린다.
도커가 사용하는 컨테이너 기반의 가상화 플랫폼이 어떤 특징을 가지고 어떻게 기존의 서버 환경을 바꾸어버린걸까?
먼저 컨테이너에 대해 알아보자.
2. 컨테이너란?
컨테이너는 프로세스가 격리된 공간에서 동작할 수 있는 기술을 의미한다. 하지만 virtual Box나 VMware과 같은 OS를 가상화하는 것과는 차이가 있다.
컨테이너의 가상화 작업을 알아보기 위해서는 먼저 커널(Kernel)에 대해서 살펴보아야 한다.

커널은 운영체제의 핵심 부분이며 운영체제의 핵심역할 (보안, 자원관리, 추상화 등) 을 수행한다.
기존의 VM이나 VB같은 가상화머신들은 guest OS 위에 커널을 새로 만들어 사용했지만, 컨테이너는 기존의 Host 커널을 공유하는 방식으로 사양을 많이 필요로 하지 않게 되어 매우 가볍게 동작한다.
컨테이너는 다음과 같은 장점을 가진다.
1. 유연성 : 매우 복잡한 앱들도 컨테이너에 들어갈 수 있다.
2. 가벼움 : 앞서 설명했던 기존의 Host 커널을 공유함으로서 얻어지는 장점이다.
3. 상호교환성 : 즉석에서 deploy를 업데이트하고 업그레이드 할 수 있다.
4. 휴대성 : local에서 빌드하고, cloud에서 deploy하고, 어디에서나 실행할 수 있다.
5. 확장 가능 : 컨테이너 복제본을 늘리고 자동으로 배포할 수 있다.
6. 스택 가능 : 서비스 레이어를 즉석에서 쌓을 수 있다.
꽤 복잡하게 느껴질 수 있지만,
기존의 가상화에 비해 매우 빠르고 가벼우며, 레이어 방식 덕분에 수정이 간편하고, 어디에서든지 어떤 기기에서든지 '이미지'를 다운받고 컨테이너를 추가하기만 하면 모든 설정 그대로 실행할 수 있다고 이해하면 될 것 같다.
여기서 이미지는 우리가 지금까지 보았던 jpeg나 png 파일과는 다른 개념인데, 컨테이너와 함께 도커의 핵심 기술이라고 할 수 있다.
이미지에 대해서 알아보자.
3. 도커에서 이미지란?

도커에서 이미지는 컨테이너 살행에 필요한 파일들과 설정값들을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않는다.
컨테이너는 이미지를 실행한 값이라고 볼 수 있고 추가되거나 변하는 값은 컨테이너에 저장된다.
컴퓨터가 바뀌거나 새로운 서버를 증설할 때에도 이 이미지를 다운받고 컨테이너 생성만 하면 모든 작업이 한번에 완료되기 때문에 엄청난 편리함을 가진다.
'네트워크, 서버 > Server' 카테고리의 다른 글
프로젝트4. Php 설치 후 실행해보기 (0) | 2020.08.29 |
---|---|
프로젝트3. SSL 인증서를 생성하고 Nginx 환경 설정하기 (0) | 2020.08.28 |
프로젝트2. Nginx 설치 후, local host에 접속하기 (0) | 2020.08.25 |
프로젝트1. Docker로 debian 이미지 만들고 컨테이너 접속하기 (0) | 2020.08.25 |
참고2. Docker(도커) 설치하기 (0) | 2020.08.25 |
시작하며. [필독]웹 서버 구축을 해보자 (0) | 2020.08.12 |