개발하다보면 환경설정을 해야할 때가 있는데
이럴떄 Docker와 Docker-compose 로 개발환경을 만들어 사용하곤 한다.
Docker는 레시피
build의 결과물 image는 음식
Docker-compose는 한상차림 레시피 라고 생각하면 될듯하다.
살짝 내부구조를 맛을 보면
cgroups(Control Groups)과 namespaces를 이용하여 격리된 구조와 제한된 자원을 관리한다.
자원에 대한 제어를 가능하게 한다.
각 컨테이너의 독립적인 공간을 만들기 위한 기술
namespace에 접근하게 할 수 있는 명령어
docker exec 와 비슷
Q. Linux에서는 namespaces 와 cgroups로 컨테이너를 만들 수 있는데 맥이나 Windows에서는 어떻게 할까?
A. Windows에서는 Linux-vm을 통한 Linux컨테이너 실행 or Hyper-v의 격리를 통한 Linux컨테이너 실행
Mac에서도 마찬가지로 Linux-vm을 설치하여 Linux컨테이너를 실행하는 구조