[Docker] 1. Docker란?
Docker란 컨테이너 기술을 활용하는 앱의 개발, 제공 및 실행을 위해 설계된 소프트웨어 컨테이너 플랫폼이다. 이때, 컨테이너란 사용자공간을 추상화하여 운영체제 수준의 가상화를 제공하기 위한 공간을 의미한다.
이렇게만 말하면 굉장히 어렵게 느껴진다. 그래서 아래에 차근차근 도커에 대해 알아보겠다.
1. 도커가 필요한 이유
그럼 각 사용자는 각자 다른 환경에 놓여있기 때문에 개발 환경을 맞추고 서버를 동일하게 세팅해야만 한다. 만약 이를 수동으로 한다면 분명 많은 오류도 발생하고 여러 프로그램이 동시에 작동하는 경우 세팅 시간이 굉장히 길어진다. 그리고 그 작업을 배포판이 바뀔 때마다 진행해야한다는 것은 매우 큰 단점이었다.
개발주기가 짧아짐에 따라 배포가 자주 일어나게 되었고 결국 이를 효율적으로 관리할 수 있는 도커가 등장한 것이다.
2. 도커란 무엇일까?
간단하게 말하면 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다.
컨테이너라고 하면 위와 같은 구조물이 가장 먼저 생각날 것이다. 보통 컨테이너가 쓰이는 곳은 확실한 공간 분리가 필요하면서도 많은 면적을 차지하지 않고 기회비용이 적은 곳에 사용된다. 도커의 컨테이너도 유사하다.
위와 같이 프로세스를 '컨테이너'라는 것으로 서로 분리를 하여 사용하는 것이다. 약간의 성능 손실이 있으나 추가적인 OS를 설치하여 실행한 가상화보다는 훨씬 효율적으로 작동할 수 있다. 새로운 컨테이너를 만드는 것도 굉장히 빠르고 가상머신보다 훨씬 효율적으로 사용할 수 있다.
즉 도커가 무엇인지 쉽게 요약하면 컨테이너로 가상화한 플랫폼을 말한다.
3. 도커의 기본 원리
도커에서 가장 중요한 개념은 이미지와 컨테이너이다. 이미지란 컨테이너 실행에 필요한 파일과 설정값들을 가지고 있는 것이다. 이는 변하지 않는 특성을 가지고 있고 쉽게 말하자면 환경을 구축해주는 과정이라고 생각하면 된다. 컨테이너는 위에서도 말했듯이 격리된 공간에서 프로세스가 동작하는 기능이며, 이미지를 실행한 상태라고 생각하면 된다.
이때, 한 이미지를 이용하여 여러개의 컨테이너를 만들 수 있다. 컨테이너의 값이 추가되거나 삭제되더라도 이미지는 변하지 않기에 다시 불러낼 수 있다. 그래서 여러 서버에서 컨테이너만 생성하면 동일한 환경이 구축되는 것이다. 놀랍게도 격리된 공간에서 실행되기 때문에 한 서버에서 여러개를 실행시킬 수도 있다.
이미지를 생성하는 방법은 Dockerfile이라는 파일에 DSL이라는 언어를 이용해 이미지 생성과정을 적어두고 서버에 이미지를 만들때 실행만 하면 된다.
오늘은 도커가 무엇인지에 대해 공부했다. 도커를 어떻게 사용하는지에 대해서는 다음 글에서 다루어보겠다.
'Web > Docker' 카테고리의 다른 글
[Docker] 2. docker 기본 사용법 (1) | 2023.01.04 |
---|