Examples of practical uses for Docker?

I still don’t understand the need for Docker. I’ve seen so many tutorials and videos that say that Docker is so useful because it basically separates applications your VMs and brings your dev environment to your prod.

But what if I only have one application that doesn’t need to share resources with any other one? Is it worth to use docker here?

And all the examples I’ve seen that are setting up a Docker environment is so simple that I just don’t see the need for it. Like is setting up an apache server, nginx server aren’t that complex that docker is needed just so settings are the same across the dev and prod environments?

I know that at my work some people use Docker to create a network of VMs that resemble the actual hardware topology that we program for.

Two big uses of Docker that I know are

  1. Testing - loading a Docker image can make CI testing much faster
  2. Complex Software Stacks - If you work with multiple pieces of complex software that may have conflicting dependencies, Docker images can be very helpful
1 Like

Well, having same environment in dev and production + forking it within seconds for any kind of staging or QA that’s already GREAT reason to use it. Another one - you can download literally any environment possible in 30 seconds - good luck with setting up it manually :wink:

I understand that’s an advantage but I gotta say from what I’ve seen it still needs to be hosted on a VM so all that stuff with transferring the built product over still needs to be done. Unless I’m wrong about that.

And yeah setting it up manually is a pain, but I’ve literally needed to do that once ever. And that’s setting up my own environment. That’s why I’m confused about docker. All these things Docker fixes do fix it but it seems to only do it once in a practical sense.

You can reroute any other version to a different port in place, the only thing you need to do on VM is to open that port