Docker-basic-concept 도커 1. 정의 컨테이너 기반 가상화 도구 2. 등장 배경 및 사용 목적 컨테이너 기술은 오래 전부터 존재했으나, 사용법이 어려워서 잘 활용되지 않았다. 도커는 컨테이너 기술을 쉽게 사용할 수 있는 간편한 인터페이스를 제공함으로써 도커 뿐만 아니라 컨테이너 기술 자체를 유행시키는 결과를 이끌어냈다. 그 결과 환경 설정의 복잡함을 도커를 이용하여 해결함으로써 많은 사랑을 받고 있다. 3. 특징 주로 사용되던 가상화 도구들(VMware, VirtualBox 등)은 인프라 시스템을 포함한 가상환경을 제공하는 것과는 달리 도커는 인프라 시스템을 제외한 컨테이너라는 개념의 가상환경을 제공한다. 이는 애플리케이션에 반드시 필요한 바이너리와 라이브러리만을 포함하고 있으며 호스트 PC와 인프라 시스템을 공유하는 환경으로 호스트 OS 위에 존재하는 격리된 공간으로 볼 수 있다. 4. 이미지와 컨테이너 이미지 : 서비스 운영에 필요한 요소들을 묶은 형태 컨테이너 : 이미지를 실행한 상태 도커는 하나의 이미지로 여러 개의 컨테이너를 만들 수 있다. 운영체제에 비유하면 이미지는 실행파일, 컨테이너는 프로세스로 이해할 수 있다. 5. Immutable Infrastructure 도커는 '한 번 설정한 운영 환경은 변경하지 않는다.'는 Immutable Infrastructure 패러다임에 충실한 도구로 서비스가 업데이트되면 운영 환경 자체를 변경하지 않고 사용 중이던 이미지를 폐기하고 이미지를 새로 생성하여 배포한다.