Debian Docker 컨테이너와 Debian VM의 실질적인(비기술적) 차이점은 무엇입니까?

Debian Docker 컨테이너와 Debian VM의 실질적인(비기술적) 차이점은 무엇입니까?

자체 커널을 실행하는 가상 머신과 달리 도커 컨테이너는 자체 커널을 실행하지 않고 호스트 머신과 커널을 공유한다는 것을 알고 있지만 데비안 도커 이미지와 데비안이 설치된 가상 머신의 실제 차이점은 무엇입니까?

한 컨테이너 내에서는 수행할 수 있지만 다른 컨테이너에서는 수행할 수 없는 작업이 있습니까? 아니면 기능적으로 동일하여 실제 데비안 설치에서 실행되는 모든 것이 docker 데비안 컨테이너 내에서 실행됩니까?

호스트 운영 체제에도 변화가 있나요? CentOS 시스템에서 데비안 컨테이너를 실행하면 데비안 시스템의 데비안 컨테이너와 다르게 작동합니까?

답변1

Docker 컨테이너와 VM의 주요 실제 차이점은 다음과 같습니다.

  1. Docker 이미지는 원래 시스템의 기본 이미지일 뿐이므로( debootstap이 기본 이미지를 얻는 데 도움이 됨) 커널, initrd...를 포함할 수도 있고 포함하지 않을 수도 있지만 커널, initrd...는 의미가 없으며 연구도 아닙니다. 개발, 기타 패키지 종속성. 따라서 필요하지 않은 경우 안전하게 삭제할 수 있습니다.

  2. Docker 컨테이너는 다르게 시작됩니다.네임스페이스컨테이너의 영향으로부터 실제 시스템 프로세스, 네트워크 연결 등을 숨깁니다. 간단히 말해서 killDocker 컨테이너에서는 실제 시스템 프로세스를 볼 수 없지만 Docker 컨테이너 프로세스를 실제 시스템의 일반 프로세스로 취급하고 이를 사용하여 무엇이든 할 수 있습니다. VM 구성이 더 어렵습니다.네임스페이스개념: 모든 가상 머신은 가상 머신 소프트웨어(VirtualBox, VMware...)에 의해 제어되는 거대한 애플리케이션으로 시작됩니다. VM 소프트웨어는 애플리케이션의 모든 시스템 호출을 캡처하여 실제 하드웨어에 전달합니다. 따라서 컨테이너 개념보다 속도가 느립니다.

  3. Docker 컨테이너는 다음을 제공합니다.지원하다특정 애플리케이션(특정 라이브러리 버전, 소프트웨어 구성 요소...)을 실행해야 하지만 커널을 실행할 필요는 없는 환경입니다. 따라서 응용 프로그램이 새로운 커널 기능을 사용하면 작동하지 않습니다.

  4. Docker 개념의 주요 목표는 애플리케이션을 공유하는 것이기 때문에 Docker 컨테이너에는 일반적으로 완전한 시스템 이미지가 포함되어 있지 않습니다. VM의 주요 목표는 운영 체제를 공유하는 것입니다.

특정 Docker 이미지가 실행되는 실제 시스템에는 차이가 없습니다(애플리케이션이 특정 커널에 의존하지 않는 한).

관련 정보