Awesome projects from the Docker community(blog.docker.io)
blog.docker.io
Awesome projects from the Docker community
http://blog.docker.io/2013/07/docker-projects-from-the-docker-community/
5 comments
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!
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 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?
Basic idea: https://github.com/superjoe30/naught
My doodling: https://github.com/radekstepan/trajan
My doodling: https://github.com/radekstepan/trajan
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!
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 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).
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.
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...
[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.
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.
As LoonyPandora said below, apparently they added shared folders recently, so I'll play with that today.
> ...but won't all data be erased when you close the container?
No, containers aren't ephemeral:
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:
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".
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.
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.
(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?
- Flynn http://flynn.io
- Deis https://pypi.python.org/pypi/deis
Rethinkdb-as-a-service: http://tryrethink.info