-
Docker소개Infra/컨테이너 2022. 1. 24. 22:41
내 컴퓨터에서 어떤 어플리케이션을 만들기 위해서는 운영체제에 여러 소프트웨어를 깔아야 한다.
예를 들어 웹개발을 한다고 하면 WebServer나 database같은 것을 깔아야 한다. 그런데 이런 것들을 설치하는게
여간 번거로운게 아니다.
=> 웹서버를 만든 사람에 적당한 컴퓨터를 구해서 적당한 운영체제를 깔고 그 위에 웹 서버를 설치한 다음에
그걸 필요로 하는 사람에게 준다면 얼마나 좋을 까? (데이터베이스 역시 마찬가지 이다.)
+전문가가 알아서 잘 설치한 것이니까 실행이 되지 않을까봐 걱정할 필요도 없다.
그리고 개발할 웹이 네트워크 통신을 통해 이것을 사용 할 수있다면?
하지만 이렇게 하려면 돈이 많이 든다 컴퓨터가 3대나 필요하기 때문이다.
자연스럽게 이런 꿈을 꾸게 된다. 하나의 컴퓨터에 가상으로 컴퓨터를 만들고 그 위에 운영체제를 설치한 후에
거기에 웹 서버를 서치한 다면 어떨까? 이렇게 된다면 컴퓨터를 별도로 장만하지 않아도 된다.
- Vmware
- Virtualbox
같은 것을 사용해 봤다면, 그게 바로 그런 것들이다
그런데 겨우 웹서버를 운영하기위해서 운영체제를 깔아야 한다는게 너무 합리적이지 못하다 운영체제가 차지하는 용량은 대부분 크다. 또 운영체제위에 또 운영체제가 있다 보니까 실행 속도도 너무 느려지게된다.
그래서 우리는 이런 꿈을 꾼다. 그냥 한대의 컴퓨터에서 각각의 앱을 실행 시키는 것이다. 그리고 각각의 앱은 그냥 실행되는 것이 아니고,
격리된 환경에서 실행된다. 이때 운영체제가 설치된 컴퓨터를 주인이라는 뜻에서 host라고 부르고, 이 곳에서 실행되는 각각의 격리된 실행환경을 container라고 부른다.
각각의 cotainer에는 운영체제 전체가 설치되어 있는 것이 아니고, 앱을 실행하는데 필요한 라이브러리와 실행 파일들만 포함되어있다. 이렇게 앱이 실행 될 수 있다면 얼마나 좋을까 이미 설치되어있는 운영체제를 공유하니까 새로운 운영체제를 설치할 필요도 없고, 속도도 느려지지 않는다.
리눅스 운영체제에는 이런 환상적인 앱 실행 방법이 내장되어 있다. 이러한 기술을 CONTAINER라고 부른다.
CONTAINER기술을 이용해서 이런 일을 쉽게 해주는 소프트웨어들이 여럿 있지만 그중에서 제일 잘나가는 것이 도커이다.
'Infra > 컨테이너' 카테고리의 다른 글
Docker란? (0) 2022.07.23 docker에 대한 기본 이해 (0) 2022.05.01 리눅스에 Docker /Docker-Compose설치하기 (0) 2022.05.01 Docker - 호스트와 컨테이너의 파일 시스템 연결 (0) 2022.04.29 Docker - 네트워크 (0) 2022.04.29