Containers ਅਤੇ virtual machines (VMs) ਦੋਵੇਂ ਅਲੱਗ-ਥਲੱਗ ਵਾਤਾਵਰਨ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ, ਪਰ ਉਹ ਵੱਖਰੇ ਤਰੀਕੇ ਨਾਲ ਕੰਮ ਕਰਦੇ ਹਨ: containers ਹੋਸਟ ਦੇ OS kernel ਨੂੰ ਸਾਂਝਾ ਕਰਦੇ ਹਨ (lightweight), ਜਦੋਂ ਕਿ VMs ਇੱਕ hypervisor ਦੁਆਰਾ virtualized hardware ਉੱਤੇ ਇੱਕ ਪੂਰਾ guest OS ਚਲਾਉਂਦੇ ਹਨ (ਭਾਰੀ)। ਅੰਤਰ ਨੂੰ ਸਮਝਣਾ ਇਹ ਸਮਝਾਉਂਦਾ ਹੈ ਕਿ containers ਇੰਨੇ efficient ਕਿਉਂ ਹਨ।
ਮੁੱਖ architecture ਵਿੱਚ ਅੰਤਰ
VIRTUAL MACHINE: CONTAINER:
┌─────────────────┐ ┌─────────────────┐
│ App + Libs │ │ App + Libs │
│ GUEST OS (full)│ ← full OS each │ (shares kernel) │ ← no guest OS
├─────────────────┤ ├─────────────────┤
│ Hypervisor │ │ Docker Engine │
├─────────────────┤ ├─────────────────┤
│ Host OS │ │ Host OS │
│ Hardware │ │ Hardware │
└─────────────────┘ └─────────────────┘
