4 votes

Run more stuff in Docker

Tags: docker

6 comments

  1. [5]
    tindall
    Link
    Please, don't - at least not exclusively. Docker exists for deployment, not to consumer machines, but to the cloud, and that's as it should be. It requires a certain minimum hardware spec to be...

    Please, don't - at least not exclusively. Docker exists for deployment, not to consumer machines, but to the cloud, and that's as it should be. It requires a certain minimum hardware spec to be usable, and eats disk space like no other if you're installing more than a few images.

    If you want to give your users reproducibility, minimal global state, and version pinning, package your software for Nix or Guix in addition to Docker, which are much better suited for the desktop use-case.

    13 votes
    1. [4]
      PendingKetchup
      Link Parent
      Docker is great for deployment on consumer machines. Using it for every tool like the linked article does is completely preposterous, but Docker is the only practical way for an individual to run...

      Docker is great for deployment on consumer machines. Using it for every tool like the linked article does is completely preposterous, but Docker is the only practical way for an individual to run a bunch of web-based applications and wire them up to the backend and database stuff that they need.

      1 vote
      1. [3]
        tindall
        Link Parent
        I don't agree with this at all. I don't want mulitple Postgres databases running at once; that's about the worst thing I can think of for tenancy and memory use, let alone SSD longevity. On...

        Docker is the only practical way for an individual to run a bunch of web-based applications and wire them up to the backend and database stuff that they need.

        I don't agree with this at all. I don't want mulitple Postgres databases running at once; that's about the worst thing I can think of for tenancy and memory use, let alone SSD longevity. On systems with a real package manager, your package can just depend on Postgres and your first-run wizard (which most apps of this level of complexity have) can create your database user and such. Wordpress has been doing it for over a decade.

        4 votes
        1. [2]
          smores
          Link Parent
          I don’t really have a dog in this fight; I don’t use Docker for running consumer desktop software, but I do run UnRaid for my NAS and self-hosting, which primarily relies on Docker containers for...

          I don’t really have a dog in this fight; I don’t use Docker for running consumer desktop software, but I do run UnRaid for my NAS and self-hosting, which primarily relies on Docker containers for running services. I only have one Postgres server, it’s just that that server is running in a Docker container. Each service that needs it just connects over the (local) network. But I have several services running different versions of PHP and Python, and any other number of dependencies that are a massive pain in the ass to manage multiple versions of on a single machine. Containers absolutely just solve this problem. I simply haven’t worried about it on this system, ever.

          I don’t think everyone needs to do this, or that it’s practical for all applications, or anything like that. But I do really like when folks have Docker images for their software, especially web based software, because it just makes self hosting trivial.

          I’ve even walked a friend through using docker-compose to set up a local Trello clone on a Windows computer. The manual install would have been a nightmare to try to do on Windows, potentially completely impossible. But the Docker install was as simple as installing docker, downloading the repo, and running docker-compose up. I think even for consumer desktop software, it can be nice to have to option!

          2 votes
          1. tindall
            Link Parent
            I absolutely think it's a good option - but I think it's important to be realistic about its significant downsides. The problems you mention it solves, conflicting versioning and installing on...

            I absolutely think it's a good option - but I think it's important to be realistic about its significant downsides. The problems you mention it solves, conflicting versioning and installing on operating systems without a package manager, are really issues with the environment, not the software being installed, and the people who make those environments (ahem, Microsoft) need to fix them.

            So long as those issues exist, Docker will be necessary, but packaging for Docker instead of systems like Nix, as the author of the article seems to advocate, is a step backwards, in my opinion. I should also point out that installing software on Windows via Docker is, while a good option for many, almost hilariously inefficient, as you have to install an entire Linux VM to do so.

  2. Elijah
    Link
    I dockerized Firefox and ran that for a few years (on Linux, not Windows). You really have to jump through some hoops. My goal was to put it in an extra-strong sandbox with minimal actual...

    I dockerized Firefox and ran that for a few years (on Linux, not Windows). You really have to jump through some hoops. My goal was to put it in an extra-strong sandbox with minimal actual knowledge of the computer. It could not play audio, for example, and that was a feature.

    3 votes