• 0 Posts
  • 21 Comments
Joined 11 months ago
cake
Cake day: August 3rd, 2023

help-circle


  • excitingburp@lemmy.worldtoSelfhosted@lemmy.worldWhat's the deal with Docker?
    link
    fedilink
    English
    arrow-up
    25
    arrow-down
    1
    ·
    edit-2
    4 months ago

    For your use case, consider it to be a packaging format (like AppImage, Flatpak, Deb, RPM, etc.) that includes all the dependencies (including services, not just libraries) for the app in question.

    Should I change this?

    If it’s not broken don’t fix it.

    Use Podman (my preferred - the SystemD approach is awesome), containerd, or Incus. Docker is a graveyard of half-finished pet projects that have no reason for existing. Podman has a Docker-compatible socket, so 100% of Docker tooling will work with it.


  • The language itself has no type enforcement, the type checking is implemented within nixpkgs. This might seem like pedantry, but it really matters for things like LSPs (text editor autocomplete). I think that’s what scares some people off: it’s like OG Minecraft, you need to have the wiki/search.nixos.org open while you are doing your editing.

    That being said, the type checking goes much deeper than what the windows registry does - e.g. it won’t allow you to enable conflicting services - like grub and systemd-boot - at the same time.




  • I’m 110% with you here. Debian have make it much more difficult to break your system, so it should be stack sponge proof going forward. I still wouldn’t put it past Linus to fuck it up some other way (you know, maybe he’ll curl HTML into bash instead of a script), and he’ll still stand his ground and blame the world. And then later give one of his non-apology apologies.

    I used to be a huge fan.



  • Linus is dunning-kruger crystallized and refined. He routinely talks authoritatively about subjects he knows little about. His qubit analogy is particularly wrong and annoying, and he doesn’t stop bringing it up.

    Either way, more idiot filters have been installed in front of that and you’ll have to do way more work (likely learning something in the process) to fuck your system up like that.











  • Don’t learn Docker, learn containers. Docker is merely one of the first runtimes, and a rather shit one at that (it’s a bunch of half-baked projects - container signing as one major example).

    Learn Kubernetes, k3s is probably a good place to start. Docker-compose is simply a proprietary and poorly designed version of it. If you know Kubernetes, you’ll quickly be able to pick up docker-compose if you ever need to.

    You can use buildah bud (part of the Podman ecosystem) to build containerfiles (exactly the same thing as dockerfiles without the trademark). Buildah can also be used without containerfiles (your containerfiles simply becomes a script in the language of your choice - e.g. bash), which is far more versatile. Speaking of Podman, if you want to keep things really simple you can manually create a bunch of containers in a pod and then ask Podman to create a set of systemd units for you. Podman supports nearly all of what docker does (with exception to docker’s bjorked signing) and has identical command line syntax. Podman can also host a docker-compatible socket if you need to use it with something that really wants docker.

    I’m personally a big fan of Podman, but I’m also a fan of anything that isn’t Docker: LXD is another popular runtime, and containerd is (IIRC) the runtime underpinning docker. There’s also firecracker or kubevirt, which go full circle and let you manage tiny VMs like containers.