Docker Community Forums

Share and learn in the Docker community.

Docker stack vs compose

Hi,

Disclaimer: I’ll start of with saying that I have searched around multiple locations and not found an answer to this. There exists variants of answer, but nothing is clear.

I want to know the future of docker stack and docker-compose. Both of them have a huge overlap, but still both seem to be maintained. The problem is that some features in docker-compose has not made it into docker-stack yet.

Looking at the history of these two and all kind of blog posts that explains them, most seem to think that docker stack is the “brain-child” of docker-compose and eventually docker stack will obsolete docker-compose. But looking at the GitHub repos docker-compose is actively maintained.

It would be nice by the docker developers to let us know which horse to bet on. It’s simple to say that “both works” but anyone with experience in both realize this is not the case (setting ulimits only works in docker-compose, building only works in docker-compose, docker stack does not support .env files etc. etc.).

In general I have a very hard time seeing the direction of the various docker parts. Is it possible the communication to the community could be better, considering how huge of an impact Docker and container based solutions has had on the software development industry?

Hi.

Docker Compose only deploys a stack to one node.
Dock Swarm deploys to a cluster of nodes.
Docker Compose does not provide rolling updates or rollbacks.
Docker Swarm does.
Docker Compose can build your images and then deploy them. So it’s good for developers.
Docker Swarn does not do builds.
Docker Swarm has support for secure secrets. The secrets are stored encrypted in the Swarm database.
Docker Compose has secrets but they are not secure. They are stored in the clear in the file system.
Docker Swarm is geared more for production deployments. not that Docker Compose could not be used for production deployments.

That’s what I can think of on the top of my hat.

Hi gforghetti and thank you for the reply.

There are for sure differences, but not as close to as many as their are similarities when looking at the the usage and the https://docs.docker.com/compose/compose-file/

As such my question is not about differences, but what the plan are for these. If you look back at when docker stack was launched, many blog posts popped up to seem to indicate that docker compose would be deprecated in favor of docker stack deploy once they had feature parity.

Are you confirming that this will not happen? I.e. there are no plans to merge the two?

If so, why? Because with a few more additions docker swarm/stack, you could get parity with docker compose and would just have to support one solution.

Hi.

I can’t comment on the plans.
But I don’t see docker-compose and Docker Swarm merging into one, or either going away.

That is unfortunate. I think issues such as this divide the community and users and create a frustration. Having two such similar tools, where one has to find differences (often by trial and error) gives a negative user experience.