Hacker News new | past | comments | ask | show | jobs | submit login

EDIT: I had previously asked what exactly Docker is.

https://www.youtube.com/watch?feature=player_embedded&v=wW9C... gives a super quick overview. Very interesting technology.




Yes, that's exactly the goal of docker: "build once, actually run anywhere".

Docker is a portable container engine. It gives you, the developer, a way to package your app and all its dependencies into a portable container which can be deployed on any modern Linux server: local VM, bare metal server, EC2 instance, doesn't matter. Containers are completely sandboxed and do not interfere with each other (think "iPhone apps for the server").

The specificities of each machine (location, distro, storage, networking) are abstracted away so you can focus on what your application requires (a known filesystem state, tcp ports to receive connections...) without having to worry about how those requirements will be met on each individual machine. This abstraction is based on common unix concepts - files, processes, tcp connections - and is therefore not language-specific, so it doesn't matter what programming language your application is written in.

To do this, Docker relies on a recent feature of the linux kernel called lxc. That's the part which allows sandboxing of applications from one another. The concept itself is not new - what is new is that it is now part of the mainstream kernel, which means almost every server in the world will soon be capable of running docker containers - hence the exciting possibility of "run anywhere".


> Yes, that's exactly the goal of docker: "build once, actually run anywhere".

Except doesn't it only run on Ubuntu? I looked at it to see if it might be useful for my servers, which are running Debian Wheezy, but the "Other Linux" instructions on the Docker site amount to "install VirtualBox and run Ubuntu" — which, yeah, anything will run anywhere if you just run it in a VM, but that was already true.


That's just our docs being unclear :) You can run docker on debian wheezy, no problem.

Docker is currently easier to run on certain distros than others. But it's not because it's distro-specific. It's because it has kernel requirements which are more easily met on certain distros than others. Those requirements are described at http://docs.docker.io/en/latest/installation/kernel/ (short version: aufs + lxc + (<=2.6 OR >=3.8))


Clean up the docs please.

Even just a list of software and kernel deps, then instructions on how to compile the rest of the software by hand would suffice.

For now I've had to muck around reading the Ubuntu packaging files to get a proper idea what/how you install this thing. Which isn't cool. :-(


The main blocker is AUFS, but Docker has been shown to run fine with overlayfs and BTRFS; and the latter is available on virtually all recent Linux systems (it's even usable on RHEL kernels, which aren't really known for being bleeding-edge).

The hardest part is to provide interchangeable, pluggable storage systems.


Basically. One thing to consider is the fact that decoupling applications and services they interact with is generally considered a good practice. What services does a web application need? Generally speaking, a web process to handle requests, a database, and maybe some in-memory storage such as memcache. What docker can do is script the creation of these services as containers that can be deployed "anywhere." So say you have your web app now, and your 3 services are on a single server and the load is getting heavy because of database queries. Docker makes it extremely easy to reliably move the services between servers to handle the load better.

Albeit this is a very simplified vision, I don't think the complete use cases for docker have been hashed out quite yet. tl;dr dev ops is about to get magnitudes easier.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: