Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not recommended for production use. Why? #1264

Closed
fullofcaffeine opened this issue Apr 7, 2015 · 6 comments
Closed

Not recommended for production use. Why? #1264

fullofcaffeine opened this issue Apr 7, 2015 · 6 comments

Comments

@fullofcaffeine
Copy link

I'm setting up a deployment stack, and I'm using Ansible to bootstrap a server, namely installing Docker and Docker compose (fig).

I'm wondering why it's not recommended for production us yet? I've seen this in the main documentation but there are no specific reasons as to why.

I could possibly use Ansible instead with the docker module, but docker-compose's API is better for the dev env, and using Ansible for production would not be DRY at all, since it would basically do the same thing compose does.

@thaJeztah
Copy link
Member

There are a couple of issues related to this (search for "production"), e.g. #93, #734, #1035

Basically, if you're using docker-compose just to create and start your containers, it shouldn't be a big issue in production; once the containers are running, they are just regular docker containers, so no more or less stable than containers started directly using docker.

Doing docker-compose up to update (properties of) running containers can result in some downtime, because of the re-creating of the containers. If you're planning on using that in production, it's best to evaluate the possible risks.

Just my thoughts :)

@fullofcaffeine
Copy link
Author

Thanks @thaJeztah

I guess that could be mitigated by implementing something like this: http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/

Besides CoreOS (which is not very straightforward and is overkill for the application I'm developing), I haven't seen a good and simple way to deploy dockerized apps without a lot of custom code. Using compose is very attractive because you can basically reuse what you have used for development. Of course, there are things that change, but mostly can be handled by setting up env vars (in the case of a rails app).

I'll try it out, let's see how it goes!

@thaJeztah
Copy link
Member

Overall, compose is really good to use, there have been some issues with the re-creating step; in that stage, compose creates new containers, and migrates volumes from the old containers. There have been reported issues where the volumes didn't get properly applied to the new container.

Just give it a spin, and see if you like it and feel confident :)

@gastonmorixe
Copy link

At www.audify.io we have dockerized all our stack. We're using docker compose for services like nginx, rails, sidekiq, elasticsearch, pg, and more. While there are many things to improve yet, it's been a pleasure to move our stack to docker using this tool. Using jwilder/nginx-proxy, let us upgrade without almost not noticeable downtime.
For clusters, maybe docker-compose is not the right tool yet, as multi-host support is still a hot topic in development I think.

@fullofcaffeine
Copy link
Author

@imton Thank you for the insights! Would you consider writing a blog post about? Looking forward to read more about your experience with Docker and Composer.(also how you use it for development).

@dnephin
Copy link

dnephin commented Aug 31, 2015

There are a bunch of related tickets about deployment and production use. I've linked them all up to #1786. I'm going to close this issue so we can concentrate the discussion in that ticket.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants