4 ms·
Containers are not virtual. Containers aren't emulating anything or translating anything. They let your partition out system and network resources as you see
by seiji 13y ago
Containers are not virtual.
Containers aren't emulating anything or translating anything. They let your partition out system and network resources as you see fit (or to protect users from abusing each other) without running kernels within kernels and other performance killing hokum.
- seldo 13y agoIndeed. One way you can use Docker in production[1] is one container per machine: even when you're not using the containers to split resources, the ability to snapshot and move an application and all of its dependencies in a single, lightweight, easily deployed package is very exciting. And because there's no translation etc. happening, running a single container is pretty much identical, performance-wise, to running it directly on the machine[2]. [1] dotCloud don't actually yet recommend running Docker in production, but if you did... [2] This was part of what Mailgun (part of Rackspace) said in their presentation at the Docker workshop in SF today.
- jaytaylor 13y agoYou can actually do the same thing with LXC containers; it is trivial to rsync a snapshot or compressed archive of a snapshot to another host machine and run it there.
- pestaa 13y agoWhy the downvote? Simple tools always work well. If you want process isolation on Linux, LXC + rsync might as well be the simplest route.
- jaytaylor 13y agoAnything not pro-docker usually gets downvoted by shykes and his ring of cronies.
- aegiso 13y agoThere's definitely hype behind Docker, but this is a ridiculous accusation.
- jaytaylor 13y agoPeople do crazy things for money.
- pekk 13y agoYou have rationalized away the people who disagree with you by making them into a conspiracy. I don't know about said ring of cronies, but I guarantee that many downvoters are not associated.
- jaytaylor 13y agoMy claim seems validated. Just look at both of my comments in this thread; they've both been downvoted deep into the negatives.
- kbutler 13y agoMy downvotes because the comments were disparaging and lacked proof. My only Docker affiliation is reading a bit about it lately. I had to search the page to see who shykes is.
- mritun 13y agoDocker is based on LXC containers. It bundles it's own management layer that replaces the "rsync" solution you propose.
- pekk 13y agoThe point of Docker is the standardized container/management interface. Of course you can write your own, but then it's not too standardized is it?
- jaytaylor 13y agoWhat you describe is standardizing complexity where a simple solution is available. Naturally, when feasible, I prefer keeping things simple and straightforward enough that standardization is unnecessary. Standardization for the sake of standardization is not defensible.
- darklajid 13y agoRegarding your first footnote: Is there an explanation why 'in production' is actively discouraged? Is that a limitation of the underlying lxc stuff? I ask, because the interesting parts of docker _for me_ seem to be focused on the setup, deployment - and not the runtime. So if I create a working image and want to use that in production, wouldn't docker become passive as soon as I run that thing? What's the danger here?
- pekk 13y agoI expect the danger is that someone will lose money and blame the developers for as-yet unforeseen issues which can only be smoked out after a few years of heavy use. But a specific danger would be interesting to hear.
- shykes 13y agoDocker maintainer here. That's basically it. There's no specific danger that we're worried about - just engineering best practices. As long as we're not comfortable operating Docker at large scale ourselves (we run quite a lot of containers in production at dotCloud), we won't recommend that others do it.
- contingencies 13y agoContainers are not virtual. They belong to a category of virtualization known as 'container-based virtualization' which implements virtualized perspectives of the system within the host kernel, effectively dividing the system in to multiple systems (from the perspective of the affected processes). That is unquestionably virtualization. I believe a statement closer to what you were looking to express was containers are not running under a hypervisor. LXC still creates a performance impact, depending upon which options are selected, with particular note for the various memory accounting options. However, that impact is far lower than a hypervisor. In addition, startup times are vastly reduced since the kernel bootstrap and hardware detection concerns are rendered unnecessary.
- lrem 13y agoI don't know about LXC, but back in the day, the impact of linux-vserver was within bounds of measurement error. Since then I have been using it reflexively on any server I touch, even if it ends with only one container.