Docker
Docker 란?
- 프로세스 격리 기술을 사용해 컨테이너로 실행하고 관리하는 오픈 소스
- 리눅스에서 제공하는 운영체제 수준의 가상화의 추상화 및 자동화 계층을 제공
- 핵심 요소인
Container
는 소프트웨어의 실행에 필요한 모든 것(라이브러리, 시스템 도구, 코드, 런타임 등)을 포함하는 완전한 파일 시스템 안에 감싸고, 실행 중인 환경에 관계 없이 언제나 동일하게 실행될 것을 보증
- 도커는
Container
가 독립적으로 하나의 리눅스 인스턴스 안에서 실행되도록 함
가상 머신과 차이점

- App layer 에서의 추상화에서 차이점이 발생
- 도커의
Container
들이 하나의 머신 위에서 OS 커널을 공유하여 사용하며, 이를 통해 여러 개의 가상 머신을 사용하는 것처럼 활용
- 가상머신은 하나의 머신 혹은 하드웨어를 여러 개의 OS로 나누어 점유하며, 각자 다른 머신으로 동작하기 때문에 각각 OS, 애플리케이션, 라이브러리가 따로 필요로 함
Docker Image
- 도커 서비스 운영에 필요한 서버 프로그램, 실행 파일, OS, 코드 및 라이브러리 등을 묶는 형태를
Docker Image
Container
생성에 필요로 한 환경을 갖고 있음
Container
의 상태가 바뀌거나 삭제되더라도 변하지 않으며, Image
다운로드를 통해 컨테이너 생성 가능
- 해당
Image
를 만들기 위해서는 Docker file
이 필요하며, 이 파일을 통해 어떤 Image
를 구성해서 만들 지 관리가 가능