Running containers without Docker
21–30 of 140 posts
Re: Running containers without Docker
#22What is the motivation and benefit for running containers without docker? Docker is by far the more mature and adopted development tool. It also runs great on windows, macos and linux. While k8s can run containers via the rkt runtime, it's still pretty new and will probably introduce unnecessary headache and edge cases. Docker also has a head start on a vibrant ecosystem for base images. In my opinion it would be bet…
I believe that Docker bet the company on the wrong business model. Therefore knowing that you can run containers without Docker can be desirable, as it gives you options in case Docker turns out to be not viable.
Docker made it easy to build and run containers from the command line. This technology was released at the right time and in the right place. And it got huge traction. Docker used this traction to get a very large amount of VC capital. Therefore they now need to show a very large return.
How do you go about achieving that large return? A common way to do this is to use one piece of technology that is popular as an anchor to lock customers into an entire stack. And then you monetize the stack, which is easier as it has higher value. The technology in this case is the container runtime, and the stack would be an full enterprise grade container orchestration system.
This strategy worked for others. Microsoft was a master in this. VMware as well, and so is Oracle. The reason I believe it will not work for Docker is:
1. The anchor technology is open source. Microsoft managed their lock-in via Windows, VMware via ESX, Oracle via their DB. It worked because those are proprietary. In the open source world you can just take Docker.
2. Even though the technology is open source, you can still try the ecosystem approach where you exploit certain network effects attached to your distribution of the code that protect you (e.g. vendor certifications). This is what worked for Red Hat. In my view it is unlikely to work for Docker. I don't think certifications are required as most container apps today are not vendor apps. And I would not know what else they could use.
3. For orchestration solution they are engineering against Google's Kubernetes. With all respect for Docker, this is going to be very hard as Google has a huge amount of experience in this area.
4. Due to Docker's need to protect their business model, there is no true community in the sense that there is an open exchange of ideas. The docker agenda prevails over technical decision making (like: should you have a docker daemon? Should Swarm be part of the Docker Engine?). Contrast that with Kubernetes which run in a very open manner by Google. This is why OpenStack got the traction, and why Eucalyptus and CloudStack died off. OpenStack had the most open community.
All of this can lead, IMHO, to a situation where Docker will not succeed in delivering Swarm as they see it. Kubernetes will become the default container orchestration system, and Docker is relegated to a small place in the stack. This situation would make it hard for Docker to justify their valuation.
Re: Running containers without Docker
#23What is the motivation and benefit for running containers without docker? Docker is by far the more mature and adopted development tool. It also runs great on windows, macos and linux. While k8s can run containers via the rkt runtime, it's still pretty new and will probably introduce unnecessary headache and edge cases. Docker also has a head start on a vibrant ecosystem for base images. In my opinion it would be bet…
Re: Running containers without Docker
#24What is the motivation and benefit for running containers without docker? Docker is by far the more mature and adopted development tool. It also runs great on windows, macos and linux. While k8s can run containers via the rkt runtime, it's still pretty new and will probably introduce unnecessary headache and edge cases. Docker also has a head start on a vibrant ecosystem for base images. In my opinion it would be bet…
> What is the motivation and benefit for running containers without docker?
I regularly hear from people who want to run containers without Docker. There are several motivations, all of which are perfectly valid:
1. Learning. It's fun to build things from scratch to understand how they work under the hood.
2. Bad experience. Early versions of Docker were quite buggy, and we initially struggled to keep up with the colossal growth in usage and feature requests. As a result, many of the people who tried Docker in production too early were badly disappointed. Some of them decided Docker wasn't for them, and started looking for alternatives.
3. Extremely custom use case. If your deployment is larger, or more complex, or more specialized than 99.99% of deployments out there, then "mainstream" platforms like Docker might not be the right fit for you. Of course we try to make Docker as customizable as possible, to support more a wider spectrum of use cases with plugins. But realistically, no single platform can cover all use cases, and I don't think any platform ever will. Docker is no exception.
4. Philosophy disagreement. Different people have different opinions on how applications should be developed and deployed. Docker tries very hard to be agnostic - to accommodate as many opinions as possible. But we can't please everybody. If Docker does not fit your philosophy of development and deployment, then the natural response is to look for an alternative.
5. Competition. Many Docker competitors started out as extensions or modifications of Docker, and over time are looking to reduce their dependency on Docker.
I'm probably missing other reasons, but these are the ones I've been most exposed to. These are all reasonable reasons to not want to use Docker.
Our approach is that, if you want to run containers without Docker, we should make it as easy as possible. In practice that means spinning out as many of the underlying components as possible (what we call the "plumbing") so that you can assemble it yourself without being stuck using the entire Docker platform. For example:
- containerd [https://github.com/docker/containerd] is our low-level container runtime.
- runc [https://runc.io] is a standardized "container executor", which we donated to the Linux Foundation as the reference foundation for the OCI spec.
- libnetwork [https://github.com/docker/libnetwork] is the low-level networking implementation (including overlay networking which is a very useful primitive for container clustering)
- swarmkit [https://github.com/docker/swarmkit] is a clustering/orchestration implementation
- notary [https://github.com/docker/notary] is a cryptographic content verification tool, which you can use to sign and verify container images.
- infrakit [https://github.com/docker/infrakit] automates the provisioning of infrastructure capable of running containers.
Our opinion is that, even if you don't use Docker, by using these components for your own purposes, you are indirectly contributing to making Docker better. Splitting out these components has also forced us to refactor Docker into a more modular, more robust design.
We even send Docker employees to explain how to run containers without Docker :) For example here's a talk we gave at Linuxcon: https://linuxconcontainerconeurope2016.sched.org/event/7oHM/...
Re: Running containers without Docker
#25If someone sent me an email equivalent to this blog post, my sole recommendation would be ProxMox running OpenVZ. OpenVZ gets you 90% of the way to Docker-style containers without breaking anything for her developers.
Re: Running containers without Docker
#26What is the motivation and benefit for running containers without docker? Docker is by far the more mature and adopted development tool. It also runs great on windows, macos and linux. While k8s can run containers via the rkt runtime, it's still pretty new and will probably introduce unnecessary headache and edge cases. Docker also has a head start on a vibrant ecosystem for base images. In my opinion it would be bet…
So, my motivation of running without docker would be to understand every little thing they do to actually be able to use them and rely on them.
Re: Running containers without Docker
#27If someone sent me an email equivalent to this blog post, my sole recommendation would be ProxMox running OpenVZ. OpenVZ gets you 90% of the way to Docker-style containers without breaking anything for her developers.
Re: Running containers without Docker
#28It's also how Hadoop and other m/r work.
Re: Running containers without Docker
#29What is the motivation and benefit for running containers without docker? Docker is by far the more mature and adopted development tool. It also runs great on windows, macos and linux. While k8s can run containers via the rkt runtime, it's still pretty new and will probably introduce unnecessary headache and edge cases. Docker also has a head start on a vibrant ecosystem for base images. In my opinion it would be bet…
Recently tried to run docker on Ubuntu Desktop 14.04. After googling a bunch of errors, trying different versions, but still failing decided to try rkt. That one worked out of the box, but apart from a bunch of simple images failed to run the caffe docker image. So, my motivation of running without docker would be to understand every little thing they do to actually be able to use them and rely on them.
sudo usermod -aG docker $your_user
There ya go.
In newer distros its as easy as apt-get install docker.io
Re: Running containers without Docker
#30Earlier quoted context omitted.
Recently tried to run docker on Ubuntu Desktop 14.04. After googling a bunch of errors, trying different versions, but still failing decided to try rkt. That one worked out of the box, but apart from a bunch of simple images failed to run the caffe docker image. So, my motivation of running without docker would be to understand every little thing they do to actually be able to use them and rely on them.
curl -sSL https://get.docker.com/ | sh sudo usermod -aG docker $your_user There ya go. In newer distros its as easy as apt-get install docker.io