도커

도커는 ‘데이터 또는 프로그램을 격리시키는 기능’을 제공하는 소프트웨어다

격리는 왜 필요한가?

대부분의 프로그램은 프로그램 단독으로 동작하는 것이 아니라 어떠한 실행 환경이나 라이브러리, 다른 프로그램을 통해 동작한다.

PHP로 작성된 프로그램을 실행하려면 PHP 실행 환경이 필요하고, 파이썬으로 작성된 프로그램은 다른 라이브러리를 필요로 한다.

소프트웨어 역시 단일 프로그램이 아니라 여러 개의 프로그램으로 구성된 경우가 많다. 예를 들어 워드 프로세스는 MySQL 데이터베이스를 따로 갖추지 않으면 사용할 수 없다.

이 때문에 프로그램 하나를 업데이트하면 다른 프로그램에도 영향을 미친다.

시스템A와 시스템B가 5.0버전의 C 프로그램과 연동되고 있는데 시스템B가 8.0 버전의 C프로그램으로 업데이트를 해야한다. 업데이트를 하면 시스템A는 동작하지 않을 것이다. 이는 실행환경이나 라이브러리, 디렉터리나 설정파일 등에서도 같은 일이 일어날 수 있다.

이러한 문제들의 대부분은 프로그램간의 공유에 있다. 프로그램도 한 서버에서 같이 지내려면 신경쓸것이 많이 생긴다.

컨테이너

  • 컨테이너는 어플리케이션의 런타임 인스턴스다
  • 컨테이너 단위로 OS, 라이브러리, 어플리케이션을 패키징 할 수 있다
  • 컨테이너는 OS에 여러 어플리케이션을 독립적으로 실행할 수 있도록 할수있다
  • 컨테이너는 여러 애플리케이션의 격리된 환경을 지원하는 가상화 기술이 있다.