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.
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.
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 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.
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.
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.
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.
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.
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.
28 comments
[ 6.3 ms ] story [ 72.8 ms ] thread- Flynn http://flynn.io
- Deis https://pypi.python.org/pypi/deis
Rethinkdb-as-a-service: http://tryrethink.info
So if you think about supporting, now's the time!
Not that I don't appreciate it - I just hope we can deliver on the high expectations!
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.
My doodling: https://github.com/radekstepan/trajan
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).
Of course, but how? Can a docker container somehow write to the host fs? It couldn't, a few weeks ago.
[1] https://github.com/dotcloud/docker/wiki/Docker-0.5.0:-extern...
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.
As LoonyPandora said below, apparently they added shared folders recently, so I'll play with that today.
No, containers aren't ephemeral:
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:
VirtualBox etc. only comes into the picture if you want to run it on a non-Linux box.
(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.