반응형
https://youtu.be/Ps8HDIAyPD0
내 컴퓨터에서 어떤 앱을 만들기 위해서는, 운영체제의 여러 소프트웨어를 설치해야한다
웹 개발을 한다고 하면, 웹 서버나 데이터베이스를 설치해야한다
그런데 설치하는 과정에서 문제가 생길 수 있다
웹 서버를 만든 사람이 컴퓨터를 구해서 적당한 운영체제를 깔고, 그 위에 웹 서버를 설치한 다음에 그걸 나눠 준다면 얼마나 좋을까
데이터베이스도 마찬가지, 전문가가 알아서 잘 설치한 것이니까 실행되지 않을까 걱정할 필요도 없다
그리고 우리의 앱은 네트워크로 통신해서 이것들을 사용할 수 있다면 얼마나 좋을까
하나의 컴퓨터에 가상으로 컴퓨터를 만들고 그 위에 운영체제를 설치한 후에 거기에 웹 서버를 설치하면 어떨까
vm웨어나 버츄얼박스를 떠올리면 된다
그런데 이걸 위해서 운영체제를 깔아야하는게 너무 아깝다
운영체제 위에 운영체제를 까는 것도 속도가 너무 느려진다
그래서, 1대의 컴퓨터 안에서 각각의 앱을 실행시키는 것이다
그리고 각각의 앱은 그냥 실행되는 것이 아니고, 격리된 환경에서 실행된다
이 때 운영체제가 설치된 컴퓨터를 주인이라는 뜻에서 호스트로 부르고,
호스트에서 실행되는 격리된 각각의 실행환경을 컨테이너로 부른다
각각의 컨테이너에는 운영체제 전체가 설치되어 있는 것이 아니고,
앱을 실행하는데 필요한 라이브러리와 실행파일만 포함되어 있다
리눅스에는 이런 앱 실행 방법이 내장되어있다
이러한 기술을 컨테이너로 부른다
이를 돕는 제품들 중 하나가 도커이다
반응형