it's like a vm, but it's much lighter (runs faster / uses less cpu, memory and disk). it does that by re-using the host kernel. so you are forced to have the same kernel in your client as in your host, and that has to be linux 64 bit.
an example of where it's useful, for me, is in system integration tests. unit tests are designed to run without changing the machine they run on, but for system integration you need to build and install and configure and run a system. so you really need something like a vm. docker gives you that isolation, but with lower overheads.
an example of where it's useful, for me, is in system integration tests. unit tests are designed to run without changing the machine they run on, but for system integration you need to build and install and configure and run a system. so you really need something like a vm. docker gives you that isolation, but with lower overheads.