개발을 하다보면 도커를 직·간접적으로 자주 사용할 일이 많았다. 이미 구축된 파이프라인에 코드를 푸시해 빌드할 때나, 로컬 환경을 프로덕션 환경과 똑같이 세팅하는 등 다양한 용도로 도커를 썼다. 예전에 도커에 대해 잠깐 공부 했을 때 '격리된 환경을 만들어서 버전 관리를 쉽게 해준다'는 것만 알고 있었지 어떤 원리로 작동 되는지는 잘 몰랐다. 그래서 이번 기회에 한 번 공부해봤다. 컨테이너 (Container)컨테이너에 대해 이해 하려면 리눅스 커널이 가지고 있는 격리 기능들에 대해서 먼저 살펴봐야 한다. 결국 컨테이너는 이 격리 기능들을 기반으로 만들어진 공간이기 때문이다. 대표적인 격리 기능은 Namespaces와 Control Groups (cgroups)가 있다.Namespaces: 각 시스템의 ..