On topic, I've been spending some time looking at Docker this morning because there seems to be a lot of buzz around it. I am winding this exploration down for the moment because I am discovering that for all the talk about how easy and fast Docker makes things, the list of what you can do with it today amounts to:
- mysql, apache and sshd Wordpress stack
- nginx, php and Wordpress
So, right now aside from the dubious differentiator of being able to spin up an SSD-hosted WordPress instance in 78 seconds, Docker doesn't seem to be very compelling. I will certainly keep an eye on it though.
As for your docker thoughts - I'll let the docker team address those more fully.
Why not just come up with a sane deployment strategy instead of hacking LXC to do it?
While Docker is interesting, we've been doing the same thing with OpenVZ for years now, minus a lot of the hype. Containerization is great but it's being applied to the wrong problem.
As a Linux admin, the claim that it's 'Portable' really irks me. Portable, in this context, is misleading, as it normally implies your application can run on different CPU Architectures. Apple's Universal Binaries were portable. Docker is not portable. It doesn't even support a large number of Linux distros. Good luck running it on FreeBSD or OS X without a lot of headache.
Docker relies on AuFS instead of a more modern COW filesystem like ZFS or btrfs.
Troubleshooting this in production will be a pain (no way to meter IOPS, no support for IPv6, unsupported filesystem, huge security risks over real virtualization).
I might need to take a look at this. Does Rackspace also provide similar services like Elasticache, RDS, ELB and CloudFront?
> Ok, so I’m going to ride the command line like a cowboy
That's a lot of kool-aid in a short sentence. Note, I'd rather have this over "Rackspace is the market-leading solution provider in the containerized virtualization space, empowered by award-winning Free and Open Source Software (FOSS) products such as Docker and LXC", but I do feel that you're pushing it a bit far in this post, here and there.
what would be the next steps to actually expose this django container to the public via port 80 and surviving a host server reboot?
This command would start it on port 8000, but you could change to any other port you want, assuming it is free.
$ docker run -d -p :8000 kencochrane/django-docker
I'm also pretty sure that when your host is restarted the container will start back up when docker does, if the container was running before the host was restarted.
Aside from that, I have had a recent interest in Docker, LXC and QVD. Thanks for the information, jnoller. I have been doing the reading (without the typing), but this just reassured me that I am on the right path. The Docker part rolls in for segregating applications from each other. In case one app gets compromised, they do not all fall down. Another interest is hitting a few compliance standards by utilizing LXC on its own. Finally, virtualization with QVD and LXC.
$ time nova boot ....
0.24s user 0.04s system 1% cpu 20.724 total
$ nova console-log
Cloud-init v. 0.7.3 finished at Mon, 11 Nov 2013 19:08:50 +0000. Datasource DataSourceEc2. Up 54.42 seconds
Smallest non-performance instance in rackspace ORD: around 5 minutes until ACTIVE.