Docker support in Proxmox

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 :)
 
Hi,

In continuation with this, any plans to get LXD support for Proxmox ?

I am using LXD (LXC 2.0) quite actively on other Ubuntu 16.04 machines and am very happy with it.

For my work, I create Ubuntu 16.04 VMs on Proxmox and run LXD based workloads within the VM.

It would be awesome if Proxmox could get LXD support natively.

Regards,
Shantanu
 
That is simply not true! Our HA manager is quite capable of managing LXC containers and thus failover IS available.
If a node fails the containers managed by HA will be recover it to another node.

You probably meant live migration of container, which is a completely other thing (not failover).

I didnt know that. I'll play with that over the weekend. As am aside, why is live migration not supported if HA takeover is available?

Docker isnt superior to LXC from a technical standpoint (or at least that isnt the reason its desirable in the context of Proxmox.) Docker has more momentum as a ready-to-ship distribution mechanism and is fast becoming industry standard; I dont know many who consider LXC a substitute. Having an integrated docker deployer in Proxmox with Proxmox integrated API control would add all of the clustering benefits and single control method; it really would be a solution where the whole is greater then the sum of its parts.
 
  • Like
Reactions: MimCom
Hi,

In continuation with this, any plans to get LXD support for Proxmox ?

I am using LXD (LXC 2.0) quite actively on other Ubuntu 16.04 machines and am very happy with it.

For my work, I create Ubuntu 16.04 VMs on Proxmox and run LXD based workloads within the VM.

It would be awesome if Proxmox could get LXD support natively.

Regards,
Shantanu

LXD is just a management wrapper around LXC - it would not make much sense to integrate it into Proxmox VE, which is also (among many other things) a management software for LXC.
 
LXD is just a management wrapper around LXC - it would not make much sense to integrate it into Proxmox VE, which is also (among many other things) a management software for LXC.
Errr... yes and no ... but mostly no!

https://linuxcontainers.org/lxc/introduction/
https://linuxcontainers.org/lxd/introduction/#relationship-with-lxc

The only reason for bringing up the topic of LXD was its much simpler usage model than having to remember lxc-ls, lxc-attach, etc. etc.

Also the "registry" equivalent (each LXD host capable of being a registry), and its image "pull" equivalent, than the template based model.
Hypothetically, I could pull images from my local LXD image repositry.

If Proxmox wants to stick with "LXC only", that's fine, though LXD would have been awesome!

As I said, I am making do with running a QEMU VM and then LXD based LXCs inside it.

Regards,
Shantanu
 
If Proxmox wants to stick with "LXC only", that's fine, though LXD would have been awesome!

Well, you may want to read closer the links you had posted since they all but define LXD's scope to be identical to Proxmox. As a matter of fact, the only distinct feature listed that LXD offers that Proxmox doesnt is Live Migration. Otherwise, consider the bulletpoints discussed:
  • What's LXD? LXD is a container "hypervisor" and a new user experience for LXC.
  • Secure by design (unprivileged containers, resource restrictions and much more)
  • Scalable (from containers on your laptop to thousand of compute nodes)
  • Intuitive (simple, clear API and crisp command line experience)
  • Image based (no more distribution templates, only good, trusted images)
  • Live migration
Also the "registry" equivalent (each LXD host capable of being a registry), and its image "pull" equivalent, than the template based model.

That is true; but if thats your desired use case, I humbly suggest docker. Even Mark Shuttlworth is on record saying LXD is not meant to replace Docker; there is feature overlap but its not the prime consideration (http://www.zdnet.com/article/ubuntu-lxd-not-a-docker-replacement-a-docker-enhancement/)
 
As long as all features from LXD will be present and usable in "Proxmox + LXC", I wouldn't complain too much.

Though I doubt the REST API etc. will be happening for LXC.

I am extremely happy with how easy it is to manage LXDs rather than Docker.
Being more like a machine makes it waaaay easier to manage.

Also, what anyone says today can easily change tomorrow. :);)

Cheers,
Shantanu
 
any plan to import kubernetes or something like that into Proxmox VE?
docker is aswsome, but I don't think it is so useful. but kubernetes is really the key Proxmox VE lacks.

I don't see that really as an pro docker argument or as PVE *needs* Docker as you can do this exactly also with LXC?
I can generate my template, start 10 of those, add another few, stop a few... Let them provide services at the current need. The thing really missing for your case is a orchestration tool, which handles that automatically (or as automatically as possible).
Just adding the function to start stop docker container wont bring such a tool to PVE, and if adding one I would prefer to do it with LXC (and VMs) as a) those are a super set of docker (AFAIK) as there the functionality is there and b) this is our CT technology, managing and updating two of them does not makes sense, causes more work and IMO its better to ensure that one works good and the problems with it gets fixed.



Your describing exactly HA fail over here (or at least one way to do it, there are more), If a node fails this is exactly what our manager does, restart the Services distributed on all other nodes, so it seems we can do this already :)
You (in you as someone who wants to provide any service, which then should be reliable to be taken seroius) want HA, its not a mute point IMO. :)



Proxmox VE have since ever "branched out in containers", as it contained an ecosystem for container tools since the start of the project.
If you forget the (current) hype about Docker itself and reduce it to its functionality I do not think people really miss out using LXC for containerization, with the technology itself.



But a service provider always will have to generate its own images, or configure them, and thus using a tool and they have such a short training period that it shouldn't quite matter.
DAB produces also technology independent image files (i.e. a rootfs), you can run them with LXC, chroot in them, put them on a bare metal machine (install a kernel for that though), ...

So I, personally, would say the container technology LXC can do the stuff, adding another one does not bring value by itself. We should rather think of doing something with the ecosystem, e.g. in the direction of orchestration as this is where the "docker universe" shines more at the moment and this could actually bring real value towards PVE more easily then trying to fit all of the Docker ecosystem in it by puttings a lot of man hours in that and the result in the end that you do not really can do more now. This is my opinion on the topic.
 
  • Like
Reactions: mhubig
Well, it looks like even Docker images are starting to encroach upon the full VM landscape (yes, that means any OS as a docker image):
https://github.com/rancher/vm

Won't be long now and container managed operating systems like CoreOS/Rancher will be the norm, leaving KVM as a compatibility layer to launch other operating systems.

Please consider this. I am already considering dropping Proxmox in my infrastructure.
 
Kubernetes is absolutely without doubt the 500 pound gorilla in the virtualization space. However if proxmox wrapped kubernetes in it's interface it would be a huge boon both ways. I haven't seen anything with the level of cross-professional appeal of kubernetes.
 
  • Like
Reactions: mhubig
The recommended installation method for Kubernetes nodes is using VMs, therefore Proxmox KVM support is fine. If you really need an UI, you have kubernetes-dashboard (with heapster for graphs).
The best way to interact with Kubernetes is through programatic means (entities descriptors, CI push, helm charts ...).

What exactly should Proxmox GUI do for Kubernetes and kubernetes-dashboard doesn't do?
 
Just discovered...if someone really needs to use Docker on plain Proxmox, this is a nifty dashboard: http://portainer.io/
That looks promising! I'd like to see this functionality integrated in Proxmox. But in fact, you still can not use Docker on plain Proxmox. You have to create one VM, and run Docker-images on it...
 
Of course you can...just install Docker...it'll work besides Proxmox.

But i really think this is outside Proxmox scope...there are tons of cool bare-metal docker cluster solutions out there.
 
Maybe a docker2container program would help somehow? You can wrap simple containers with a init=<whatever-your-docker-image-starts>.
 
Just to continue this discussion for intellectual purposes....

Whatever we think of LXC vs Docker - the fact of the matter is that the industry has chosen Docker for most workloads.

Secondly, kubernetes is the golden nugget but the space where we need a tool is to compete is with openshift which is basically a massive wrapper around kubernetes and adds the "missing" associated services.

openshift is centos based yuck.... We need a debian based kubernetes wrapper
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!