

Docker 0.4.0 release note - thu
https://github.com/dotcloud/docker/wiki/Docker-0.4.0-release-note,-June-3-2013

======
shykes
TLDR: Docker is an open-source engine which automates the deployment of
applications as highly portable, self-sufficient containers.

Version 0.4 introduces a remote HTTP api, a new Build functionality, and an
experimental Openstack integration.

~~~
nutanc
Would be nice if every post had a TLDR;

Maybe someone should hack a tool, point an URL and get a TLDR; version

~~~
Orva
I think that if post has so trivial amount of information that it can be
shortened to TLDR, there is never any need to actually read it

~~~
icebraining
A TL;DR is just a summary, it doesn't need to contain all the information in
the original text to be useful.

------
SnowLprd
Many thanks to shykes, mdaniel, backjlack, and the many others that
contributed to this terrific release. So much has been accomplished in just a
few months, which augurs well for what Docker will look like by year's end.
Bravo, everyone.

------
chrisfarms
Feels like there is some wheel-reinventing going on here. Maybe someone could
help me out on why the build scripts here would be preferable over something
like Chef to manage the repeatable builds within a new container? Or maybe
I've totally missed the point.

~~~
shykes
Dockerfiles are not a replacement for chef or puppet scripts. They're a very
lightweight way to assemble a container by running unix commands, and then
freezing that container into an immutable, portable unit of deployment. Some
of thos unix commands may be calls to Chef.

If you're a chef user, you can use docker to "just-in-time" compile your chef
recipes into a container almost as portable as a static binary. You can then
send that container to me, and I'll be able to run it regardless of what
configuration management I like to use on my machine.

~~~
bryanlarsen
It seems to me that you should be able to roll back an built via a Dockerfile
back to any step in the build, and then rebuild from that point. A deployment
via another CM tool would probably lose that ability.

Perhaps it's my inexperience, but I find chef scripts to be very fragile
because of the large amount of external dependencies they generally contain.
All of these dependencies are very stable: nobody takes down tarballs and
packages randomly, but a large number of low probability events can add up to
a high probability.

That makes image based deployments appealing, but you still need to have a
reliable, repeatable capture of the steps that went into building the image...

~~~
jacquesc
I've used Chef extensively and found this to be exactly the case.

In my experience, going back and running deploy scripts I wrote a year ago
have about 10% probability of still working. Aside from chef's breaking
changes (and versioning mess), there's a ton of things outside of my control
that take things down. Debugging has been a nightmare.

I love the concepts and community around Chef, but I've found for my use case,
it was an all around bad choice.

------
tachion
One of the reasons why I really enjoy while reading the notes is the fact that
Docker does not shut itself into Linux world and promises working with
alternative technologies, like BSD Jails. That's a great news and I am looking
forward to see it happening!

------
fintler
On my list of things to do: compare docker to zerovm to libvirt to ??? and
figure out which one works will work best with rdma (infiniband) networks.
Combined with nixos (maybe), this could work wonders for hpc data provenance.

~~~
darkarmani
What about OpenVZ? It isn't as light as Docker (you get a whole OS) and solves
a different problem, but it is solid at providing a OS virtualized container.

~~~
shykes
OpenVZ is almost identical to LXC, which is what Docker uses under the hood.
You could port Docker to OpenVZ very easily. In fact, there is a plugin
planned to do exactly that.

Fun fact: before running on lxc, dotCloud (where Docker originated from) was
initially based on OpenVZ (which was great). As the mainline kernel's support
for containers improved (in large part, I believe, thanks to the pioneering
work of OpenVZ), eventually we moved over to that.

~~~
darkarmani
Thanks for the clarification. I'm working on a similar type of product, but
involving heavy compute and data analysis. Since we aren't hosting web apps,
we don't have the web routing complexity that you have, but we do share a lot
of the backend pieces (OpenVZ and unionFS in our case).

------
gtaylor
I'm not sure I'm asking this question correctly, but what kind of performance
hit do I take by using a Docker container within an EC2 instance instead of
just running straight on the EC2 instance's userspace?

I'm not looking for any kind of concrete number, but let's say I've got a
Postgres running on an m1.large. Any idea how running Postgres under Docker
would change my performance characteristics?

~~~
fintler
Almost nothing in most cases, but it depends on what you're doing. Take a look
at the benchmarks for lxc.

[http://lxc.sourceforge.net/index.php/about/kernel-
namespaces...](http://lxc.sourceforge.net/index.php/about/kernel-
namespaces/network/benchs/)

Postgres is a beast tho (albeit a cute and friendly beast), it's probably
doing something weird that lxc won't like.

~~~
shykes
That's correct, you can approximate the overhead of LXC (and any other similar
containerization such as OpenVZ, Solaris Zones, BSD jails etc.) as zero. In
terms of performance they are closer to chroot than to a virtual machine.

------
philwhln
I interviewed one of the creators of Docker, Solomon Hykes, last week. Blog
post is here. <https://news.ycombinator.com/item?id=5816622>

------
atsaloli
So how does Docker compare to Vagrant (<http://www.vagrantup.com/>) ? They
sound very similar.

~~~
krakensden
Docker lets you run separate userspaces on the same kernel.

Vagrant provisions Virtualbox, which lets you run separate kernels, on various
different virtualized CPU architectures.

~~~
andyl
It is possible to use docker/lxc as a Vagrant provider. This means when you
run 'vagrant up', your 'machine' could be a lxc container instead of a
VirtualBox VM.

<https://github.com/dotcloud/docker/issues/404>

[http://fabiorehm.com/blog/2013/04/28/lxc-provider-for-
vagran...](http://fabiorehm.com/blog/2013/04/28/lxc-provider-for-vagrant/)

------
incision
I've been dabbling with docker quite a bit. I'm finding it solid despite the
disclaimer against production use.

~~~
cdoxsey
FWIW I've found precisely the opposite. I ended up having to roll my own lxc
wrapper. Maybe in a few months docker will be there, but not right now.

~~~
thelarry
I started off using my own implementation and was thinking about switching to
docker... what made you switch away from docker?

~~~
cdoxsey
It's poorly documented (so you'll need to dig into the source to figure out
how to use it) and at least when I was using it did not play well when
scripted (like sending commands to the container). It also wasn't terribly
reliable (a command might work one but not the next time) and it seemed like
it was in a state of transition. (moving towards a RESTful API?) I just think
if you use it now you'll end up writing stuff (at least) twice.

Not that raw LXC is much better... It all seems very immature.

~~~
KenCochrane
Can you give us some examples on where it is poorly documented so that we can
fix those issues?

Also, if you can let us know what you were doing when the command didn't work
the same way every time? Have you filed any issues for those yet? If not, can
you, or tell me here and I can do it for you. If we don't know about your
issues, it is hard for us to fix them.

Thanks

------
thelarry
Remote api is pretty cool and makes my life easier, but how much functionality
does docker provide over running lxc-* style commands?

------
rdtsc
The main question I have is since it uses LXC, which shares the kernel, I
can't have Windows running in Docker or even a different Linux distro
(presumably unless they happen to have the same Linux kernel)?

~~~
montecarl
You are correct. You must run linux, but since most distros aren't too picky
about what kernel version you run, you should be able to run any distro you
want.

------
darkarmani
Please, please prioritize shared filesystems/storage with the host. I know it
was hotly debated when talking about sharing data between containers, but
sharing data with the host is very useful.

------
sosedoff
Any plans for btrfs ?

~~~
bgentry
Sounds like it:
[https://github.com/dotcloud/docker/wiki/Docker-0.4.0-release...](https://github.com/dotcloud/docker/wiki/Docker-0.4.0-release-
note,-June-3-2013#even-more-integrations)

