• @MoonlightFox
    link
    53
    edit-2
    14 hours ago

    There are another important reason than most of the issues pointer out here that docker solves.

    Security.

    By using containerization Docker effectively creates another important barrier which is incredibly hard to escape, which is the OS (container)

    If one server is running multiple Docker containers, a vulnerability in one system does not expose the others. This is a huge security improvement. Now the attacker needs to breach both the application and then break out of a container in order to directly access other parts of the host.

    Also if the Docker images are big then the dev needs to select another image. You can easily have around 100MB containers now. With the “distroless” containers it is maybe down to like 30 MB if I recall correctly. Far from 1GB.

    Reproducability is also huge efficiency booster. “Here run these this command and it will work perfecty on your machine” And it actually does.

    It also reliably allows the opportunity to have self-healing servers, which means businesses can actually not have people available 24/7.

    The use of containerization is maybe one of the greatest marvels in software dev in recent (10+) years.

    • @[email protected]
      link
      fedilink
      English
      23 hours ago

      Containerized software is huge in the sciences for reproducible research. Or at least it will/should be (speaking as someone adjacent to bioinformatics and genomics)

      • @MoonlightFox
        link
        12
        edit-2
        13 hours ago

        I don’t have in-depth knowledge of the differences and how big that is. So take the following with a grain of salt.

        My main point is that using containerization is a huge security improvement. Podman seems to be even more secure. Calling Docker massively insecure makes it seem like something we should avoid, which takes focus away from the enormous security benefit containerization gives. I believe Docker is fine, but I do use Podman myself, but that is only because Podman desktop is free, and Docker files seem to run fine with Podman.

        Edit: After reading a bit I am more convinced that the Podman way of handling it is superior, and that the improvement is big enough to recommend it over Docker in most cases.

      • @[email protected]
        link
        fedilink
        English
        913 hours ago

        I prefer Podman. But Docker can run rootless. It does run under root by default, though.

      • @[email protected]
        link
        fedilink
        English
        213 hours ago

        Not only that but containers in general run on the host system’s kernel, the actual isolation of the containers is pretty minimal compared to virtual machines for example.

        • @stetech
          link
          45 hours ago

          … With the tradeoff being containers much more lightweight and having much less overhead than VMs…

        • @[email protected]
          link
          fedilink
          English
          07 hours ago

          What exactly do you think the vm is running on if not the system kernel with potentially more layers.

          • @[email protected]
            link
            fedilink
            English
            8
            edit-2
            6 hours ago

            Virtual machines do not use host kernel, they run full OS with kernel, cock and balls on virtualized hardware on top of the host OS.

            Containers are using the host kernel and hardware without any layer of virtualization

    • @NocturnalMorning
      link
      113 hours ago

      Always someone who needs to explain and ruin the joke…

      • @Tricky
        link
        1012 hours ago

        Not everyone is experienced in the space. I appreciate the reader notes.