Hacker News new | past | comments | ask | show | jobs | submit login
Bootstrapping the open-source Sandbox on top of Docker (dotcloud.com)
40 points by nigma on May 22, 2013 | hide | past | favorite | 15 comments



This sounds like the beginning of something very cool, especially if they can add in the automatic deployment of non-code services and credentialing, which really streamline their service. The idea of running my own sandbox host on a Ubuntu image with equal ease of deployment vs. using their hosting service is appealing.

That being said, as impressive as this progress is, there's still some distance to cover. Not to be a hater, but docker+sandbox still doesn't equal their old Sandbox service "flavor". Minimal configuration is the primary allure of, not just dotCloud, but the PaaS ecosystem as a whole. Had they waited until these projects reached maturity before sunsetting their Sandbox service, I might still be deploying my whole stack to dotCloud.


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?


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!


I think this is pretty cool.

As a front end developer I would like to see this mature into a project which "makes my life easier", and currently, one of the biggest pains, I think is setting up a nginx or apache project with the right WSGI directives.

What I would love to see this develop into is a way to get my code pretty much straight from my IDE to a server of my own (whether hardware or virtual). I know it is very limited in deployment features right now, but I can pretty much rely on Docker to do that. e.g. "sandbox build /folder"; docker push dhrp/folder; ... ssh to my server ... docker run dhrp/folder. Done!

Two things are still missing here: * Some kind of proxy with virtualhosts to map port 80 to my container * A default run command for container committed by sandbox


Try this:

http://www.korokithakis.net/posts/example-provisioning-and-d...

You can go from fresh installation to complete Django stack in one command.


Right. I can write a script to go from fresh installation to deploy in one command using Vagrant, Puppet, Chef, Ansible.

But the reason why so many people like PaaS such as Heroku and dotCloud is actually that there is /one/ recommended way to structure your app (at least, what to put in wsgi and so forth). It's about making it easy to go from code to package to deployment.


Note that docker supports both allocating your port 80 to a container ('docker run -p :80'), and setting a default command to run.


On a side note what ZSH theme is that?


You mean in the screencast? Well, I'm using `PS1="%# "` here, then I'm running zsh inside tmux.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: