Live data from Hacker News

Ask HN: How do you use Docker in production?

news.ycombinator.com

101–110 of 157 posts

Re: Ask HN: How do you use Docker in production?

#101
post #98

We're using Docker to solve these kinds of problems: - Running Jenkins slaves for some acceptance/integration tests that runs in the browser, previously we had to configure multiple chromedrivers to spin up on different ports or be stuck running 1 test per machine. Now we have 6 machines (down from 9) which runs 6 slaves each, so we can parallelize our tests as 36 tests run concurrently. That has significantly improv…

Interesting, we've been using docker containers as Jenkins slaves, dependencies managed using ShutIt.

Re: Ask HN: How do you use Docker in production?

#102
post #50
post #46

Earlier quoted context omitted.

In typical virtualisation + config management you specify a base image and bunch of config files and commands. In a Dockerfile you specify a base image and commands, may often invoke a config management tool. How is using Docker more declarative?

If you take the steps for, say, AWS, of building a new AMI for every role you have, then it's pretty much the same. (but in my experience with building AMI's, that process is way too slow compared to Docker) Docker becomes closer to declarative when you build static Docker images for every role and rebuild for every change and re-deploy. Even more so when your deployment is based on a tool like Fleet that declarative…

I blogged on automating deployment to AWS with Docker here:

http://zwischenzugs.wordpress.com/2014/08/09/using-shutit-an...

http://zwischenzugs.wordpress.com/2014/09/15/using-shutit-an...

Re: Ask HN: How do you use Docker in production?

#103

Earlier quoted context omitted.

Yes, very much so. In fact, our goal is to have NixOS based containers. Right now, we're using Debian as the base image, and there's /no/ guarantee that the versions of software installed are consistent (since Docker caches based on the line in a Dockerfile, rather than what's actually installed). With Nix, we can have version guarantees in all of our Docker images--including the cached images.

Well sure there can be a guarantee. `RUN apt-get install some_package= ` If you want a newer version, update the Dockerfile with the version you want.

That package could install some other dependencies, and those dependencies aren't pinned down.

Re: Ask HN: How do you use Docker in production?

#105
post #76

We use docker for: - running graphite (can't say it was less pain launching it, since Dockerfile was outdated a bit, and I also had to additionally figure out persistency issues, but overall I'm happy it's all virtualized and not living on server itself) - building our haskell projects for specific feature (your run a container per feature, this way you omit pain switching between features when you need to build one)…

Interesting that you say that the Dockerfile was out of date - I've found that this is a common problem; the vast majority I try are buggy.

Re: Ask HN: How do you use Docker in production?

#106
Docker explicitly violates the principles of the Twelve-Factor App. Docker apps don’t rely on any external environment. In fact, Docker demands that you store all config values, dependencies, everything inside of the container itself. Apps communicate with the rest of the world via ports and via Docker itself. The trade-off is that apps become a little bit bulkier (though not significantly), but the benefit is apps become maximally portable.

In essence, Docker makes almost no assumptions about the app’s next home. Docker apps care about where they are even less than twelve-factor apps. They can be passed to and fro across servers—and, more importantly, across virtualization platforms—and everything needed to run them (besides the OS) comes along for the ride.

Re: Ask HN: How do you use Docker in production?

#107
post #44

Earlier quoted context omitted.

Very interesting. I'm curious, have you considered nixos?

Yes, very much so. In fact, our goal is to have NixOS based containers. Right now, we're using Debian as the base image, and there's /no/ guarantee that the versions of software installed are consistent (since Docker caches based on the line in a Dockerfile, rather than what's actually installed). With Nix, we can have version guarantees in all of our Docker images--including the cached images.

Great. I have a major complaint about Nix. Their packages are built with all sorts of dependencies included. So you install mutt and you end up getting python. Or you install git and you also get subversion.

I understand all their philosophy, but they should allow for flexible runtime dependencies without the need for rebuilding packages. Perhaps with a second hash or something, to sign dependencies.

Re: Ask HN: How do you use Docker in production?

#108

Docker explicitly violates the principles of the Twelve-Factor App. Docker apps don’t rely on any external environment. In fact, Docker demands that you store all config values, dependencies, everything inside of the container itself. Apps communicate with the rest of the world via ports and via Docker itself. The trade-off is that apps become a little bit bulkier (though not significantly), but the benefit is apps b…

This is the first time I've heard the phrase "twelve-factor app". Although I'm ignorant of this term and docker, it wasn't obvious to me how it violates the concepts. Which factor does it violate?

For reference: http://12factor.net/

Re: Ask HN: How do you use Docker in production?

#109
post #8

I used Docker to solve a somewhat unconventional problem for a client last week. They have a Rails application that needs to be deployed in two vastly different situations: * a Windows server, disconnected from the internet * about 10 laptops, intermittently connected to the internet Docker let us build the application once and deploy it in both scenarios with much less pain than the current situation, which basicall…

I'm curious why something fpm wouldn't have solved your problem? Just package into an a .deb file and you're good to go.

Re: Ask HN: How do you use Docker in production?

#110
Not technically in production yet, but I use Docker for the following scenarios:

- Build agents for TeamCity, this was one of the first scenarios and it's been amazingly helpful so far.

- Building third-party binaries in a reproducible environment

- Running bioinformatics pipelines in consistent environments (using the above tools)

- Circumventing the painfully inept IT department to give people in my group easy access to various tools

I've also been contemplating building a Docker-based HPC cluster for a while now, though unfortunately I'm currently lacking support to make that happen.

Post reply on HN