I'm having trouble understanding what exactly Docker is. Is it like an orchestration framework? How is it different than, say iocage?
It's kind of a very userfriendly wrapper for containers and jails as well as it is a very easy way to share and find whatever is built in a jail or container.
Say, your team developed a webapp that has quite a bit of prerequisites to run optimal. A user/customer of your app may be able to install all prereqs but it could take quite some time. Especially to have all versions correct. Your team did all R&D on Centos, but your customer installed Fedora. Let's say nginx's versioning is slightly different because of different patchlevels..whatever..And then we're only talking about nginx.. not even how folders are chmodded etc..anyway..you get the point..
Your team could save it as a docker container and push it to a central repository. Could be your own local one, it could be the official external docker repo. Whenever anyone wants to deploy your webapp, they can run
docker pull webapp
and it will pull the latest version of your webapp container to their system. Essentially, a
docker run webapp
will start that container/jail running Centos, with the exact nginx version that's been tested by QA in your team, all folder permissions are perfect and all the rest is exactly configured and setup how it was intended to be running. No matter which OS it's running on. As long as it supports docker, it will run how your team wanted it. And it can run as many times as you want... if you make a script that starts
docker run webapp
250 times, you'll have it running 250 times.
So jails have been there for quite a while, way longer than Linux containers ever were, but docker has filled a sweetspot that wasn't there before. It made containers accessible, maybe even usable, for the masses.
Hope that clarifies things a bit