I unterstand the Hype for Docker, from a DevOps Point of view. We only use Docker instead of LXC for one single reason Portability.
I just like to quote Chenxi Wang from Twistlock, which reflect our experiences with LXC and nails it down :
"Portability. This is perhaps the single most important advance of Docker over LXC. Docker abstracts away more networking, storage, and OS details from the application than LXC does. With Docker, the application is truly independent from the configurations of these low-level resources. When you move a Docker container from one Docker host to another Docker-enabled machine, Docker guarantees that the environment for the application will remain the same.
A direct benefit of this approach is that Docker enables developers to set up local development environments that are exactly like a production server. When a developer finishes writing and testing his code, he can wrap it in a container and publish it directly to an AWS server or to his private cloud, and it will instantly work because the environment is the same.
Even with LXC, a developer can get something running on his own machine, but discover that it doesn’t run properly when he deploys to the server; the server environment will be different, requiring the developer to spend an enormous amount of time debugging the difference and fixing the issue."
We discussed this LXC vs Docker thing from "top to the bottom and back" in our company. and we came to the conclusion, if you need this portability use a virtualization environment which focus on Docker (in the direction of orchestration). Proxmox does a very very good job in other things and we are happy with it. From a homogeneous environment point of view it would be nice to have Docker natively in Proxmox. Not having it natively is not a show stopper. there are always workarounds, even if sometimes a little bit painful
I just like to quote Chenxi Wang from Twistlock, which reflect our experiences with LXC and nails it down :
"Portability. This is perhaps the single most important advance of Docker over LXC. Docker abstracts away more networking, storage, and OS details from the application than LXC does. With Docker, the application is truly independent from the configurations of these low-level resources. When you move a Docker container from one Docker host to another Docker-enabled machine, Docker guarantees that the environment for the application will remain the same.
A direct benefit of this approach is that Docker enables developers to set up local development environments that are exactly like a production server. When a developer finishes writing and testing his code, he can wrap it in a container and publish it directly to an AWS server or to his private cloud, and it will instantly work because the environment is the same.
Even with LXC, a developer can get something running on his own machine, but discover that it doesn’t run properly when he deploys to the server; the server environment will be different, requiring the developer to spend an enormous amount of time debugging the difference and fixing the issue."
We discussed this LXC vs Docker thing from "top to the bottom and back" in our company. and we came to the conclusion, if you need this portability use a virtualization environment which focus on Docker (in the direction of orchestration). Proxmox does a very very good job in other things and we are happy with it. From a homogeneous environment point of view it would be nice to have Docker natively in Proxmox. Not having it natively is not a show stopper. there are always workarounds, even if sometimes a little bit painful