I've been reading some content on this subject, but I'm still not sure I get the advantage of running apps as lxcs vs docker on an lxc. Many people on here and out there on the web are prescribing lxc by default.
As I understand it, the main advantages are:
- easier hardware forwarding
- less performance overhead
- automatic snapshots
The first two are sort of edge cases in my opinion. You frequently don't need that level of performance or hardware. Snapshots are nice, but seem fairly inefficient, because you have to snapshot the entire lxc.
With docker, you can do snapshot backups of your mounted volumes. That's really the only stuff that needs to be persisted. Everything else is supposed to be fungible.
The drawbacks of lxc as I see them are that you have more manual steps for upgrades. With docker, I pull the new image, it does any migrations if they are necessary (containers frequently provide this out of the box) and it works. With the lxc, if the new version of the application requires a different version of some dependency, you have to do that yourself, right?
Can someone break this down for me?
Ps: currently running an lxc with Ubuntu and docker with all of my containers and full pci passthrough
As I understand it, the main advantages are:
- easier hardware forwarding
- less performance overhead
- automatic snapshots
The first two are sort of edge cases in my opinion. You frequently don't need that level of performance or hardware. Snapshots are nice, but seem fairly inefficient, because you have to snapshot the entire lxc.
With docker, you can do snapshot backups of your mounted volumes. That's really the only stuff that needs to be persisted. Everything else is supposed to be fungible.
The drawbacks of lxc as I see them are that you have more manual steps for upgrades. With docker, I pull the new image, it does any migrations if they are necessary (containers frequently provide this out of the box) and it works. With the lxc, if the new version of the application requires a different version of some dependency, you have to do that yourself, right?
Can someone break this down for me?
Ps: currently running an lxc with Ubuntu and docker with all of my containers and full pci passthrough