Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Awesome projects from the Docker community (docker.io)
64 points by shawndumas on July 28, 2013 | hide | past | favorite | 29 comments


2 more PaaS projects built on docker since this post:

- Flynn http://flynn.io

- Deis https://pypi.python.org/pypi/deis

Rethinkdb-as-a-service: http://tryrethink.info


Also just 2 more days for the Flynn crowd funding campaign to go. I hope it'll succeed.

So if you think about supporting, now's the time!


Docker's really making a hard PR push huh? They're everywhere lately.


Believe it or not we (docker team) are not behind 80% of that PR - we wake up in the morning and find the stuff on HN just like you :)

Not that I don't appreciate it - I just hope we can deliver on the high expectations!


It seems like they are on HN every day, yes. And I am getting lost. Docker, Dokku, Strider...

I am interested in one thing: continuous deployment of apps that wait until old versions of apps die off (using an IPC channel). Heroku seems to just time out after x minutes. Can someone more knowledgeable than me say how/if the Docker eco system handles this? I am interested in Node.js only.


I'd love to talk about this more. Can you elaborate or point me to the closest version to that reality?



Oh. I do this with docker all the time :)


Awesome, well then I am glad I found you. Could you, if you would be so kind, please point me in the direction of an example or the tools I need to be using? I will then look in to it and the next time someone asks, I can point them straight to Docker.


My blog (http://nick.stinemat.es) is the best place to see what I am up to as it relates to Docker. In particular, http://nick.stinemat.es/#continuous-deployment talks about my particular setup.

Once a revision is "good enough", I update the service configuration to load balance between new and old views of the site, and then remove the old view from the rotation. Reverting back to a previous revision is just as simple.

Let me know if you have any other questions, and feel free to drop by #docker on freenode(I'm keeb)

Good luck!


Thank you Nick. I will check it out. In particular I will be interested in how the load balancing happens with zero downtime for already connected clients.


It seems they've hit some sweet spot that helps people get creative ..


There's one thing I don't understand well about docker: I saw people making Graphite containers and the like, but won't all data be erased when you close the container? It seems to me that any sort of persistent data storage on docker is very inconvenient.


> ...but won't all data be erased when you close the container?

No, containers aren't ephemeral:

  $ docker run -i -t base /bin/bash
  root@d675bee3cbdb:/# echo 'Hello, world!' > /foo   
  root@d675bee3cbdb:/# exit
  $ docker restart d675bee3cbdb
  d675bee3cbdb
  $ docker attach d675bee3cbdb
  root@d675bee3cbdb:/# cat /foo
  Hello, world!
  root@d675bee3cbdb:/#


Weird, they were for me. I guess I was probably starting the base image again? Where do you get the modified id from?


> Weird, they were for me.

Were you using volumes? Currently a container's volumes are reset when the container is restarted. That's fixed in master.

> Where do you get the modified id from?

In this case I just copied it from the container's command prompt. It's also available via docker ps -a:

  $ docker run base sleep 1
  $ docker ps -a
  ID                  IMAGE               COMMAND             CREATED             STATUS              PORTS
  041d889d7bd8        base:latest         sleep 1             5 seconds ago       Exit 0                                
  $


Apparently I don't know how to use docker. You are right, I was just starting the base image every time. Starting it creates a new container which you can find with "ps -a", and you can start/attach to it later the way you said. Thanks for the tip, I need to find a good tutorial or write one.


Hmm, no, I wasn't using volumes. I was doing "docker ps", but didn't notice (or didn't know to use) an id, so I just did "docker run Ubuntu etc".


But if you are putting something like a database in a Docker container, wouldn't you point the storage of the data files at something a little more permanent?

And for everything else that is just data processing in the stack, ephemeral storage isn't a bad thing (stops developers writing things to disk when they shouldn't).


> But if you are putting something like a database in a Docker container, wouldn't you point the storage of the data files at something a little more permanent?

Of course, but how? Can a docker container somehow write to the host fs? It couldn't, a few weeks ago.


It's new in 0.5.0 [1] - Released ~10 days ago. Things in docker-land move super quick!

[1] https://github.com/dotcloud/docker/wiki/Docker-0.5.0:-extern...


Oh, very nice, thanks!


Ah, you see this is what I haven't yet done... but I figured you'd just mount some network attached storage and use that for the data files.

Which may or may not be the host machine, and most likely would be the machine you configure to be next door with more focus on SSDs than CPU.

I also figured, but haven't checked, that Docker will eventually support Vagrant-style shared folders. But maybe this breaks the philosophical design of a container.


Yeah, but that's for production. For staging/dev machines it's not very convenient, and I really don't like special-casing things all the time depending on where I have to deploy... It adds a lot of complexity.

As LoonyPandora said below, apparently they added shared folders recently, so I'll play with that today.


Is there a "container" system that does not entail a significant performance penalty from using VirtualBox etc?


What are you trying to ask? Docker is using LXC when running on Linux, and LXC is a container system that does not entail a significant performance penalty.

VirtualBox etc. only comes into the picture if you want to run it on a non-Linux box.


Okay, so what about non-Linux then, e.g. Windows?

(Also, apprently LXC guidance is only offered for Ubuntu & Archlinux: http://www.docker.io/gettingstarted/)

I also thought the point was to be able to deploy anywhere. Considerable performance penalty on some platform may hurt the point significantly.


Docker runs on linux only because it uses LXC/cgroups/AUFS, all of which are unique to Linux. FreeBSD Jails and Solaris Zones have the same core concepts that docker uses.


Nitpick: Why use a whale as the logo when the tagline says that it's a "lightweight" container system?




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

Search: