Docker will change everything

  • Yes, it will change everything...back to what it once was. You will be billed by CPU time, I/O time, network consumption, etc. Just like we did on the old Mainframes. Hopefully, this will provide the feedback loop necessary to reward efficient programming once again.

  • > automates the deployment of any application as a lightweight, portable, self-sufficient container that will run virtually anywhere.

    Bullshit. How do I run it on RHEL 5, because DoD systems are chock full of those? What about Windows? I have to install Virtualbox, and Vagrant and then run Docker inside the virtualized linux environment and then run docker containers in that.

    So "virtually anywhere" means on a handful of systems.

    Sometimes technology's biggest "fans" are its biggest enemies without even realizing.

  • Can someone comment on what I would use Docker for as opposed to what I would use Chef / Puppet / Ansible for?

  • Docker sounds very interesting, but I have a ton of questions. I'm very familiar with Chef and Vagrant, and passingly familiar with FreeBSD jails, but I'm having trouble wrapping my head around Docker. Here are some questions:

    - Why use ENTRYPOINT rather than init.d scripts?

    - When I'm building the Dockerfile, how do I do something like `vi /etc/apache2/sites-available/my-app`? In other words, how do I drop a whole config file onto the image, the way I'd use Chef files/templates?

    - Is it possible to parameterize a Dockerfile, so people can use my image but adjust the nginx timeout time?

    - Do Dockerfile commands need to be idempotent? For example will this cause problems?: `RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list`

    - If I'm using docker to host Rails-on-unicorn, do I still use Capistrano to push a new deploy, or do I spin down the whole docker container then launch another with my latest code? If the latter, are there any existing tools for that?

  • He explains the problem well, but I yet to see someone who explains the docker solution (into more details) well.

  • IT WILL CHANGE EVERYTHING!!! Including orbits of small moons around planets we haven't discovered yet.

  • IMHO: On Docker, I'd say, it will change the rhetorical everything for stateless tiers. Stateful tiers will resist this change. I'm not yet comfortable upgrading to a new version of MySQL on a database using Docker in application-container mode, that is, without some package management like scripts (e.g. upgrade the dataset). For stateful tiers, full LXC containers are changing everything, at least until full full-container support arrives in Docker (because, duh, it uses LXC).

  • "self-sufficient container that will run virtually anywhere"

    Anywhere that is Linux.

  • > lightweight, portable, self-sufficient container that will run virtually anywhere.

    It doesn't work on typical cheap VPS servers from http://lowendbox.com/ because they use OpenVZ.

  • I'd love to understand what use cases Docker is used for. I read a lot of comments where people talk about outsourcing functions their laptop would normally run, but I'm not sure of the comparative advantages of that method.

    I wonder a few things:

    1. Could tighter security be implemented by outsourcing certain functions to Docker--the base computation can only allow certain routines to run, for example, disallowing any trojan activity? (Similar to blocking ports, but at an IO or computing level).

    2. How is this tech beneficial to the consumer market? As the consumer market goes the business market (as we saw in Microsoft/Apple/iOS adoption--consumers demanded it then wanted to use it in business situations)

    3. Is the tech Docker using propietary, trade secret, or protected by patent? In our current environment tech firms face terrible regulatory uncertainty due to crappy patents. Can a viable competitor to Docker exist?

  • Why not just create a AWS/DigitalOcean/Rackspace instance for every service? When I need different versions of the same software I use another instance or something like Python virtualenvs.

  • "an open source project to pack, ship and run any application as a lightweight container" - I am so excited! How exactly do I ship and run my XNA/Mono game on Android, WP, iOS?

  • How do you scale with Docker? I get the idea of how containers work. I get the idea of how it shares resources between like containers. That's all very cool. My question is how do I scale a docker container? It's not well covered in the tutorial. Do I just add more containers? What happens when I want to scale on separate servers? I don't see any configurability of the items inside the containers.

  • I still think there needs to be a bridge for SCM tools and Docker. Docker allows you to easily share an enviornmnet but there is still value in documenting how that environment was built - preferably via a flexible language (chef/puppet/ansible) instead of just sequential bash commands.

    Is there already a project out there that does docker-based continuous integration?

  • >But what happens when there is another rails application that uses the same stack. you need to setup another instance identical to the previous one to run the second application in production.

    Why not just run them on the same "instance"? What does instance even refer to?

  • Hey folks, if you want to try out Docker easily, you use https://github.com/steeve/boot2docker

    It's a 23mb ISO that boots in 6s and allows you to get started right away.

  • FreeBSD jail isn't dead yet.

  • Question: If I were to deploy a rails app using docker, can I put the whole stack in a single container (ruby/postgres/redis/sidekiq/etc.) Or do I need a separate container for each process?

  • Nope, Docker is not going to change everything. I could tell you what is, but you won't believe me.