도커 이미지: 도커 이미지는 컨테이너를 실행하기 위한 템플릿 역할을 한다. 이미지는 애플리케이션과 그 실행에 필요한 모든 파일, 코드, 라이브러리, 환경 설정 등을 포함합니다. 이미지는 불변(immutable)이며, 이미지 자체는 변경되지 않는다. 도커 컨테이너: 도커 컨테이너는 도커 이미지에서 생성되며, 실제로 실행되고 있는 애플리케이션의 인스턴스이다. 간단히 말해서, 이미지를 실행하면 그것이 바로 컨테이너가 된다. 컨테이너는 시작될 때 이미지의 상태를 그대로 가져오지만, 실행 중에는 독립적으로 상태가 변할 수 있다.
Docker
도커 컨테이너와 가상 머신(VM)은 모두 애플리케이션을 격리된 환경에서 실행할 수 있게 해주지만, 기본 구조와 효율성에서 큰 차이가 있다. 가상 머신(VM): 가상 머신은 하드웨어 스택을 가상화한다. 각 가상 머신은 완전한 운영 체제를 실행하며, 이로 인해 추가적인 오버헤드가 발생한다. 이는 리소스 사용량이 많고 시작 시간이 더 길다는 것을 의미한다. 도커 컨테이너: 반면, 도커 컨테이너는 운영 체제 수준에서 가상화를 진행하며, 컨테이너는 커널을 공유하고 애플리케이션과 그 종속성만 포함한다. 이는 컨테이너가 가상 머신보다 훨씬 가볍고 빠르게 시작되며, 더 적은 양의 리소스를 사용한다는 것을 의미한다.
컨테이너화는 애플리케이션을 실행하는데 필요한 코드와 모든 종속성을 포함하는 경량의 독립 실행형 패키지를 만드는 기술이다. 이러한 컨테이너는 다양한 컴퓨팅 환경에서도 일관된 방식으로 실행될 수 있도록 해준다. 컨테이너화된 애플리케이션은 시스템의 나머지 부분과 분리되어 있기 때문에, 소프트웨어 충돌 없이 여러 애플리케이션을 한 시스템에서 실행할 수 있다. 컨테이너화는 '가상화'와 비슷한 개념이지만, 가볍고 효율적인 방식을 제공한다.