Why does it feel like Docker is moving backwards?

I'm very much just a basic user of Docker and Compose, but whenever I run into issues with Docker I see how v3 or the new `docker compose` CLI does things differently, and I'm just wondering, what was wrong with the current way of doing things?

`docker-compose -f` used to work fine, I could specify a file but `docker compose -f` doesn't. On top of that, as soon as I use a none standard filename (for e.g. a development workflow) Docker Desktop isn't able to stop the entire Compose project (I have to go through each container individually) nor restart it later on.

I was also reading about `healthcheck` as well as `depends_on`. It seems that now they want to move to using tools such as [`dockerize`](https://github.com/jwilder/dockerize) to handle these basic things, and I don't really get why something that directly has to do with the fact that Docker Compose is managing the infrastructure should be moved to near application-level logic. It adds more boilerplate in a decentralized place, without actually decoupling since there's more than enough to configure in the Compose file anyway.

10 thoughts on “Why does it feel like Docker is moving backwards?”

  1. I think Docker has never been an extraordinary example of wonderful engineering.

    It starts with the terminology, which is terribly inconsistent (`docker run` on command line is something completely different than `RUN` in a Dockerfile), continues with idiotic design decisions (like the mandatory version upgrade) and ends with bugs impacting the User Experience that simply don’t get fixed (100% CPU Bug in Docker Desktop).

    So there’s no excellence, and since there’s no excellence, I don’t expect that Docker makes reasonable decisions.

    I am very thankful that Docker exists and that it changed the way of how software works.

    But every day I pray to the holy spaghetti monster to get a suitable alternative.

    Reply
  2. Isn’t `docker compose` still an experimental beta feature that you have to explicitly enable/install? Complaining that a beta feature isn’t complete is a bit pointless. It probably will have a few minor differences when it’s complete but the time to complain about missing features is not before it’s even out of beta.

    Anyway integrating compose closer with the docker command seems like progress rather than a step backwards to me. Any totally new tool will have new issues, it’s just how software development works.

    Reply
  3. Docker compose v3 is build for cloud deployment.
    Use V2 for local hosting.
    I personally never use docker compose command.
    For more infos write a comment. 🙂

    Reply
  4. > It seems that now they want to move to using tools such as dockerize to handle these basic things, and I don’t really get why something that directly has to do with the fact that Docker Compose is managing the infrastructure should be moved to near application-level logic.

    Some of docker’s features like depends_on, linked containers, and so on don’t really work in the case of swarm, or the cloud. These features pretty much require everything running on a single node. The newer compose versions and golang version are focused on swarm, and now the cloud. So these features that can’t really work in the swarm or cloud are discouraged, or dropped completely.

    Reply
  5. Docker the company has had issues making money. If they can’t make money, they can’t staff effectively to address issues.

    They sold off Docker Enterprise. They don’t charge for what’s left. So how do they make money?

    This seems to be their business model right now – docker hub and friends, image repo privacy, image scanning for CVEs, etc:

    https://www.docker.com/pricing

    https://techcrunch.com/2019/11/13/mirantis-acquires-docker-enterprise/

    What you are seeing is the result of an idea that ran its course, but seems to have fundamental issues with how to monetize its innovations. When making decisions about what to work on, I’m sure it’s skewed towards what the PAYING customers need first.

    Reply
  6. You could always take a look at alternative runtimes, such as containerd (which docker is built upon), it even have its own cli program now (nerdctl).

    I do like docker, but i feel the same, most new features are useless to me, while the issues keep on stacking up.

    Reply

Leave a Comment