2
afaik2
23d

What's the real use for Docker? a Docker image has the same weight as if you install the app normally (what you see no but the image in some other folder yes), that's not cool. what's its real use? you can later config it with yml files? access the Docker hub? I don't get it.

Comments
  • 3
    (Do take all that I say with a grain of salt, I don't particularly like docker and will always prefer to install software on the "bare" OS rather than containers, so I'm not *SUPER* versed in docker)

    TL;DR: Portability, cross-distro compatibility, security

    Main use is portability and compatibility across ALL distros. A Docker image will come with all the libraries of the versions that work well with the program and (the important part) in the paths and ways the application expects. It eliminates the "but it works on my machine" problems. If it works on the dev's "machine"(docker) it will work in any distro without any distro-compatibility issues. It's also somewhat useful because you don't have to systemwide i stall libraries and tools that you use inly for one program with docker, since everything is in the docker.
  • 6
    It's a container, It's job is separation from the system.

    A) dockers set up their own environment with their own dependencies, so compatibility is ensure on all computers and in most cases architectures too
    B) your own system doesn't get bloated, riddled with multiple competing dependencies, and you can remove the software by deleting the container
    C) docker can set up and configure multiple systems (like server, database, ui) either in a single container or via composition, so you don't have to set up all these systems locally

    The advantages are clear, it was never about space or anything, It's about neatly separated blocks (containers)
  • 4
    A secondary(but not less important) use is the fact that's it's containerized. It makes it isolated and is a semi-security feature, if you run something in a docker and it gets compromised, it will only have access to what you explicitly give it access to.
  • 2
    to run old software without the person who made the software to have to update to newer operating system and library APIs

    lazy compatibility layer that will explode into virus avenues one day I'm sure 😁
  • 6
    "It works on my machine." -> "Then we'll ship your machine."

    Reproducibility. You basically ship an OS with all the dependencies of the project and run it on the go. Far more easier to manage than trying to deploy something directly on 10 different OSes. The only thing left to do is setting up how Docker itself talks to the host OS, but this is generally predictable and redoable.
  • 1
    @kamen haha, literally that sentence I've learnt recently about it and just wanted to post that. Did you also see it recently somewhere? Maybe we hang out at the same places.
  • 1
    Always use the yml files / compose else your container floats around somewhere. Use mounts, not volumes. Export ports to to [public]:127.0.0.1:[inteenal port] because docker doesn't care about your firewall rules and will just publish your port. Use reverse proxy.

    But: I like the most if it that I keep my machine clean. Thanks to docker, I can move setups easily and am able to manage old setups. The yml files are almost docs.

    My local system is a duplicate of server setup. In and outside docker. Very comfii.
  • 2
    @whimsical it’s an old meme. I’ve seen it years ago :)
  • 0
    While all of you did a great job of explaining what containerization is and what problems it solves, I had almost 0 contact with that and I feel like software that needs containers is poorly written ^^

    I might be wrong
  • 1
    @Lensflare It can also be a godsent. At my previous job, it took the average dev more than week to setup the full backend environment on their preferred OS. They introduced dockers and it got cut down to only 15min after multiple iterations.

    In their defence, it was more complex than the usual CRUD application.

    (But shortly after that, they decided to migrate big parts of the backend to AWS lambdas so the docker became useless imo)
  • 0
    CRUD, one of the most stupid acronyms.
  • 1
    It's a low overhead abstraction layer for OS environments. Designer intention notwithstanding, you use it like any abstraction layer.
    Distribute software with less regard for distro nonsense
    Limit the number of interacting factors during debugging
    Standardize dev environments (possibility bring them closer to live environments too, although I would caution against that. The goals are starkly different.)
    Run poorly designed software that has prerequisites you don't want to install systemwide or creates clutter
    Monitor and inspect what passes through the interface
    Simulate or mask over environmental constraints as presented to a whole userspace, not just one target
  • 0
    @lorentz

    > Run poorly designed software that has prerequisites you don't want to install systemwide or creates clutter

    This is what resonates with me the most and is the reason for why I feel about containerization that negatively.

    It’s a solution to a problem that shouldn’t exist in the first place.
  • 1
    @Lensflare it sucks indeed when you have to do that, but it's just one use-case, and it would be a lot worse without containers - think of what a typical Windows machine belonging to a creative poweruser with a diverse range of interests looks like.
  • 0
    @whimsical It's an old joke, but "it's funny because it's true". I heard years ago for the first time.
  • 0
    Apparently it's also a good choice for malware. https://thehackernews.com/2026/03/... .
Add Comment