Hacker News new | ask | show | jobs
by landr0id 4770 days ago
Can someone give me a rundown on the general idea of Docker? I'm a programmer, don't do much server/linux work (OS X is my OS), so I'm not quite understanding.

> Docker is an open-source engine which automates the deployment of applications as highly portable, self-sufficient containers which are independent of hardware, language, framework, packaging system and hosting provider.

What does this mean? Someone sets up an application with necessary dependencies, everything ready to go and creates a container out of it which can run on any linux kernel?

2 comments

It's really an set of tools for lxc. Create "images", boot them, and have a sandboxed execute environment for some service(s). There are repositories with services pre installed. You can get a service running with a command like:

docker run -h myhost -t repo/redis-image redis-server

That creates a container based on the repo/redis-image image, and runs the command "redis-server" once it boots (less than a second on my machine).

Oh that's actually really neat. I'll have to look into it more, but it's a shame there's nothing available for OS X for me to play with on my local machine.
Hell, I do significant amounts of server/Linux work, and still don't understand Docker (it doesn't help that I haven't been able to run it because btrfs).

I understand that it's a lightweigth container, but what's the advantage? Aren't images still 2+ GB? Do I have to version the entire FS instead of 2-3 config files? Can I freeze it? Can I push it to a server? How long will that take? Can I use the same image on develop, staging and production? How does it know which is which?

Etc etc.

You don't need to have btrfs to run Docker (you need aufs which is included in Debian and Ubuntu).

Yes, in the end images are an entire filesystem and can be large if you installed a lot of packages (or very small, e.g: busybox). Yes, you can freeze it: you can commit a container as a new image. Yes, you can push it to a server (https://index.docker.io/). Yes, you can use the same image for development, staging and production; you'll launch different container from the same image that's it.

Ah, that clears things up a bit, thanks. However, Docker currently has a bug that prevents it from running on btrfs, which I'm running on.
Oh, I'm not aware of this bug, are you talking about https://github.com/dotcloud/docker/issues/339 ? In any case, don't hesitate to open a new issue on github!
Yep, that's the one!