No I’m sure there will be an obscure shell script that someone wrote to do all of the install for you that will suddenly fail on a broken python dependency (because why not) and then leave your system in semi-altered state that doesnt really work wrong but its never quite right again
r_13@lemmy.world 11 hours ago
I 100% learnt to use docker specifically to avoid the exact situation you described.
Hawke@lemmy.world 11 hours ago
Got any good resources for learning?
In my (limited) experience Docker is just “run some script from a random GitHub that loads more stuff from a random GitHub… now you have a blob of code on your PC somewhere that’s unmodifiable and inaccessible unless it’s a web app in which case it’s listening on a random port with no access to any system resources”
I assume there’s something more I need to be doing but all the learning resources just kinda assume you understood wtf it’s doing.
r_13@lemmy.world 6 minutes ago
I tend to think of docker containers like light virtual machines.
You can start with an image of a very simple bare operating system, or from an OS with a few things installed (in my case I have lately been using images from dockerhub under nvidia/cuda-ubuntu so that my container spins up with ubuntu and the drivers and SDK for my GPU).
Then essentially the Dockerfile becomes the sandbox from which to test installation scripts, see what works by trial and error if necessary, to install the programs you want – if you make a mistake or the install script fails as in the comment above, you can just kill the container and spin up a new one without the “doesn’t really work wrong but its never quite right again” issue :)
I know this does sound like ‘rtfm’ but I definitely have made a lot of use of the Docker manuals: docs.docker.com/manuals/
These manuals, plus stack overflow searching for Dockerfile tips, and github repos for the software I want to use that sometimes do contain Dockerfiles, have been enough to get me acquainted with spinning up my own containers and installing what I need, and use docker compose to run multiple containers on a single host that can talk to each other. Beyond that, I had to search a bit harder (mostly on StackOverflow, but also a bit of tail-chasing using ChatGPT) to learn how to configure overlay networks to allow containers to talk to one another from on different servers, and using docker stack to spin up a swarm of containers as services on a cluster.
notoftenthat@sh.itjust.works 10 hours ago
Switch “some script” to “docker compose” and you are a subject matter expert.
Sir_Kevin@lemmy.dbzer0.com 8 hours ago
Welcome to the linux community.
Hawke@lemmy.world 8 hours ago
I mean I’d rather get told to “rtfm” than hear “it just works” with no explanation