2 ms·
- Your DLLs, assets, etc comprise a complete application you can deploy anywhere. - But that anywhere needs to be a consistent environment for you to be sure y
by kcartlidge 4y ago
- Your DLLs, assets, etc comprise a complete application you can deploy anywhere.
- But that anywhere needs to be a consistent environment for you to be sure your application behaves as expected (OS versions, system libraries, file system layouts etc).
- Docker (actually containers generally) goes one step lower and provides that consistent environment by effectively running your application inside a precisely defined virtual OS that is always the same regardless of the actual hardware.
---
That's all moderately simplified, so not 100% precise terminology, but in effect you can think of Docker as a lightweight virtual machine to run your app in, that always behaves the same, and that can in turn be hosted inside most 'real' servers regardless of what they themselves are running.
A bit like running a PS1 game in a PS1 emulator on Windows, but running a .Net Core app in Debian on an Azure VM (for example).
The same config can be used to run the app in Debian on a local Windows box, or your designers Mac, without changes and with guaranteed identical behaviour as all your app sees is the Debian host.
(in reality it's more lightweight and faster launching than a VM is, and it's not actually using emulation, but that's all technical detail)