리눅스 컨테이너 기반으로 하는 오픈소스 가상화 플랫폼이다.
가상화 기술 중 하나로 기존 OS를 가상화 시키던 것과 달리 컨테이너는 OS레벨의 가상화로 프로세스를 격리시켜 동작하는 방식으로 이루어진다.
내 컴퓨터에서 애플리케이션을 만드려면 운영체제에 여러 소프트웨어를 설치해야 한다.
(웹개발의 경우 웹서버나, 데이터베이스가 있다)
하나의 컴퓨터에 가상으로 컴퓨터를 만들고 그 위에 운영체제를 설치 후에 웹서버를 설치한다면??
(운영체제 위에 운영체제가 있다보니까 실행 속도도 느려지게 된다...)
한 대의 컴퓨터 안에서 각각의 앱을 실행시킨다.
각각의 앱은 격리된 환경에서 실행된다. 이 때 운영체제가 설치된 컴퓨터가 호스트가 된다.
호스트에서 실행되는 격리된 각각의 실행 환경이 컨테이너가 된다.
(각각의 컨테이너에는 앱을 실행하는데 필요한 라이브러리와 실행 파일들만 포함되어 있다)
- 설치할 필요가 없다
- 운영체제가 하나니까 속도도 느려지지 않는다
- 시간 절약
- 저장장치 용량을 아낄 수 있다.
도커 위에서 돌아가는 컨테이너와 컨테이너 안에서 동작하는 각각의 앱들은 Linux 운영체제에서 돌아간다.
운영체제가 Window나 MacOS면 컴퓨터에 가상 머신을 깔고 Linux 운영체제를 깔게되면 Docker와 같은 컨테이너 기술을 사용할 수 있다.
(Linux가 아닌 운영체제는 가상머신을 사용하기 때문에 어느 정도의 속도 저하를 감수해야함)
그럼에도 도커를 쓰는 이유는 Docker를 사용했을때의 편의성이 뛰어난다고 한다.
오 🔔님 대단하신걸요? 해보니까 어떠신가요?