Live data from Hacker News

Docker 0.8: Quality, new builder features, btrfs, OSX support

blog.docker.io

81–90 of 128 posts

Re: Docker 0.8: Quality, new builder features, btrfs, OSX support

#81
post #62
post #3

Just to clarify on the OSX support: obviously we did not magically get Darwin to support linux containers. But we put together the easiest possible way to run Linux containers on a Mac without depending on another machine. We do this by combining (1) docker in "client mode", which connects to (2) a super-lightweight linux VM using boot2docker. The details are on http://docs.docker.io/en/latest/installation/mac/

I've followed and refollowed those steps on OS X 10.9.1, but this is what happens: » docker version Client version: 0.8.0 Go version (client): go1.2 Git commit (client): cc3a8c8 2014/02/05 23:10:55 unexpected EOF Yet the docker server is definitely up: docker@boot2docker:~$ docker version Client version: 0.8.0 Go version (client): go1.2 Git commit (client): cc3a8c8 Server version: 0.8.0 Git commit (server): cc3a8c8 G…

[deleted]

Re: Docker 0.8: Quality, new builder features, btrfs, OSX support

#82
post #77
post #62

Earlier quoted context omitted.

I've followed and refollowed those steps on OS X 10.9.1, but this is what happens: » docker version Client version: 0.8.0 Go version (client): go1.2 Git commit (client): cc3a8c8 2014/02/05 23:10:55 unexpected EOF Yet the docker server is definitely up: docker@boot2docker:~$ docker version Client version: 0.8.0 Go version (client): go1.2 Git commit (client): cc3a8c8 Server version: 0.8.0 Git commit (server): cc3a8c8 G…

Hey, thanks for the report! We're tracking that issue on https://github.com/dotcloud/docker/issues/3952 and are working with the boot2docker folks to get a fix out asap.

Thanks! I solved the issue—it was due to CrashPlan using port 4243 (doh!)

https://github.com/steeve/boot2docker/issues/48

Re: Docker 0.8: Quality, new builder features, btrfs, OSX support

#83
post #27

Earlier quoted context omitted.

Personally, when I read "OSX support", I thought that meant that there would now be containers with Darwin-ABI binaries inside them. So on Linux, you'd use cgroups for Linux-ABI binaries and a VM for Darwin-ABI, just as on OSX you use a VM for Linux-ABI (and presumably would use the OSX sandbox API for Darwin-ABI containers.) This "native sandboxing for own-ABI if available, VM if not, and VM for everything else" app…

Going that way would dilute Docker's value. Docker's promise is that you can build a container and it will always work; it won't mysteriously break in production or giving you installation headaches. To do that, your development environment has to be as close to the production environment as possible. Having a totally different ABI doesn't help with that goal.

Our priority in the short term is definitely to focus on the Linux ABI and making it available on as many physical machines as possible. This is the reasoning behind our current OSX support, and support for more platforms coming soon.

Longer term we do need to support multiple ABIs, if only because a lot of people want to use Docker on x86-32 and ARM. Having ELF binaries built on Linux isn't of much help if they're built for another arch :) So at the very least we will need to support 3 ABIs in the near future.

The good news is that it can be done in a way which doesn't hurt the repeatability of Docker's execution environment. Think of it this way: every container has certain requirements to run. At the very least it needs a certain range of kernels and archs (and yes it's possible, although uncommon for a binary to support multiple archs). It may also require a network interface to bind a socket on a certain TCP port. It may require certain syscalls to be authorized. It may require the ability to create a tun/tap device. And so on.

Docker's job is to offer a portable abstraction for these requirements, so that the container can list what it needs on the one hand, the host can list what it offers on the other, and docker can match them in the middle. If the requirements listed by a given container aren't met ("I need CAP_SYSADMIN on a 3.8 linux kernel and an ARM processor!") then docker returns an error and a clear error message. If they are met, the container is executed and must always be repeatable.

TLDR: ABI requirements are just one kind of requirements. Docker can handle multiple requirements without breaking the repeatability of its execution environment.

Re: Docker 0.8: Quality, new builder features, btrfs, OSX support

#84

Earlier quoted context omitted.

We've tried to be plainly open that going the 'open core' route is in no ones best interest. Swappable storage engines will be easier to create over time, not less. There's also a ZFS branch, but the reality is people spent time and resources on getting BTRFS (which has been experimental for >6mos) instead of ZFS. Docker development works a lot like Linux development (just on a much, much smaller scale.) If there's a…

Gurjeet is on it. Edit - docker's great. if I were an investor, how would you guys monetize it? prof svcs, support? I could see folks paying for a dashboard, cloud controller w/ api and an easy-to-deploy openstack-like setup.

We were pretty open with plans in our Series B announcement a couple of weeks ago.

Basically - investing more in open source, investing in the docker platform, investing in commercial capabilities

So as you can imagine, we're meeting with a ton of companies and hiring really good people who want to be part of something pretty amazing.

Re: Docker 0.8: Quality, new builder features, btrfs, OSX support

#85
post #28
post #21

Earlier quoted context omitted.

Or even bare metal. Personally, I extract the kernel and initrd and use it directly via PXE.

Is that to say that you.. wait, what are you doing?

I have my router serving up TFTP with the following pxelinux.cfg (and the appropriate vmlinuz64 and initrd.img extracted from the b2d ISO):

  LABEL boot2docker
          MENU LABEL boot2docker v0.5.2
          KERNEL boot2docker/v0.5.2/vmlinuz64
          APPEND initrd=boot2docker/v0.5.2/initrd.img loglevel=3 user=docker

Re: Docker 0.8: Quality, new builder features, btrfs, OSX support

#86
post #31
post #4

Earlier quoted context omitted.

Hi Matt, you are not alone :) It turns out that shared folders are not a sustainable solution (independently of whether boot2docker supports them), so the best practices are converging towards this: 1) While developing, your dev environment (including the source code and method for fetching it) should live in a container. This container could be as simple as a shell box with git and ssh installed, where you keep a te…

Thanks for taking the time to write this. I've hit a major wall in figuring out the best workflow for this exact scenario. Good to finally hear an official suggestion on the matter. I've been depending on shared directories, so I'll definitely be experimenting with network filesystems. As Docker evolves, it would be great to have some kind of official resource to get suggestions for optimal workflows as new features…

> As Docker evolves, it would be great to have some kind of official resource to get suggestions for optimal workflows as new features become available

Yes! We are trying to figure this out. Our current avenue for this is to dedicate a new section in the docs to use cases and best practices.

As you point out, our docs (and written content in general) are often inaccurate. We need to fix this. Hopefully in the coming weeks you will start seeing notable improvements in these areas.

Thanks for bearing with us!

Re: Docker 0.8: Quality, new builder features, btrfs, OSX support

#87
post #70
post #33

Is Docker a good way to bring more security on a server with a few different websites? Separating the sites from each other and run nginx as a proxy in front of them? What's the overhead?

Unfortunately Docker prevents hosting environments from employing some of the most potent security mitigations added to Linux recently. You cannot treat a docker container like a virtual machine – code running in the container has almost unfettered access to the parent kernel, and the millions of lines of often-buggy C that involves. For example with the right kernel configuration, this approach leaves the parent mac…

If this is an argument against trusting the Linux's specific current implementation of OS-level containerization/resource-limiting, I can buy that. But I don't think full virtualization is the only or best answer. Solaris Zones (and their derivatives via OpenSolaris/Illumos) are a pretty solid implementation of the concept that has a good security record with quite a bit of production use. FreeBSD jails are also pretty solid nowadays, though they used to be somewhat buggy.

Re: Docker 0.8: Quality, new builder features, btrfs, OSX support

#88

IMO, it would be fantastic if there was something like Docker for Windows. Imagine being able to bundle up games in individual containers and easily being able to move them from machine to machine as you upgrade. Same thing applies for other Windows apps.

The developers of DRM for Windows games would probably make sure that doesn't work.

Re: Docker 0.8: Quality, new builder features, btrfs, OSX support

#89
post #80
post #70

Earlier quoted context omitted.

Unfortunately Docker prevents hosting environments from employing some of the most potent security mitigations added to Linux recently. You cannot treat a docker container like a virtual machine – code running in the container has almost unfettered access to the parent kernel, and the millions of lines of often-buggy C that involves. For example with the right kernel configuration, this approach leaves the parent mac…

> Unfortunately Docker prevents hosting environments from employing some of the most potent security mitigations added to Linux recently. You list various facts that are mostly correct, but your conclusion is wrong. Docker absolutely does not reduce the range of security mitigations available to you. Your mistake is to present docker as an alternative to those security mitigations. It's not an alternative - it presen…

Look, I'm really glad that you're excited for docker, but name dropping companies running the risk of exposing their machines does not magically invalidate the specific examples I gave. In fact I've really no idea what purpose your reply was hoping to serve.

In the default configuration (and according to all docs I've seen), regardless of some imagined rosy future, today docker is a wrapper around Linux containers, and Linux containers today are a very poor general purpose security solution, especially for the kind of person who needs to ask the question in the first place (see also: the comment I was originally replying to)

Re: Docker 0.8: Quality, new builder features, btrfs, OSX support

#90

Earlier quoted context omitted.

Are you sure it isn't caused by the mid-2010 macbook video card bug? I had it re-exposed when i upgraded past 10.6 and that laptop now reboots 8 times a day. Mostly from mac mail or when the power drops and it shifts video cards.

FWIW, I had my 2010 mbp motherboard warranty-replaced and the crashes were gone.

Mine started failing a few months outside the replacement period (3 years). I was due for a new work laptop, so I just replaced the machine.
Post reply on HN