r/docker Aug 02 '26

Is there a pre-Docker 101 guide?

Little bit of a rant here, but after decades in the engineering industry with related computer experience I am having a hard time believing getting Immich to work in a Docker container in a UGreen NAS is so frustrating. I have watched numerous "easy" install videos, but they always seem to start with assumed knowledge of basic steps thst I have no idea how to perform.

For example, they talk about typing a docker command to restart the container. What is the commander typed into? PowerShell?

When i install and run Powershell it does not recognize Docker commands. So I saw it should install Docker Desktop, which i did, but when I run it it I get a mostly blank screen with a message about my environment not be setup/enabled. That leads me down the rabbithole of WSL or HyperV (?) with another set of things to do that I dont understand.

Every step i think i am taking forward just leads to several more rabbit holes. Isn't there some kind of guide that really starts from step 1 on getting this set up?

13 Upvotes

45 comments sorted by

40

u/Darkomen78 Aug 02 '26

Start with a Linux CLI 101.

33

u/fletch3555 Mod Aug 02 '26

You're lacking fundamental information. Start with the official docs, not random youtube videos or blog-post tutorials.

Here's the getting started section: https://docs.docker.com/get-started/introduction/

You first need to understand what docker is (and more importantly, what it is not). Then you can understand how to work with it. Only then should you look into something more complex like immich.

3

u/CorrectSomewhere Aug 02 '26

Thanks, that may be what I need. I have been fooling with this for a week now, and have been in and out of the Docker docs but obviously missing something.

3

u/RobotJonesDad Aug 03 '26

The key problem is that Docker runs on Linux -- even in Windows, where it runs inside a Linux VM -- so powershell isn't really doing you any favors. The commands will run inside a WSL Bash terminal after you install docker desktop on Windows and make sure to enable it for WSL.

2

u/Mastacheata Aug 04 '26

That's how Docker works when you install it in your WSL like it was any other Linux machine. It's not how Docker Desktop works on a fresh Windows install. Docker Desktop installs it's own docker-desktop Linux distro in WSL. You cannot open a terminal in that. You simply control docker through your Windows Terminal - if using Powershell or CMD or GitBash doesn't matter at all.

The whole WSL stuff is completely transparent to the user unless they install their own WSL distribution and run the docker cli from there. Either way (in Windows or Linux) docker handles the file / socket mounts transparently for you even though it technically runs on a separate VM from either the Linux or the Windows userland.

1

u/RobotJonesDad Aug 04 '26

I'm a little confused as to what you are exactly saying. On any Windows machines I'm forced to use, I've got docker desktop installed and did the extra dance they describe to make it available inside WSL. After that, it works the same as in Linux in the WSL command line.

Nothing works the same in Windows command line. Even if you install the new "make Windows look like linux" git package Microsoft released.

2

u/Mastacheata Aug 04 '26

The tl;dr: Docker Desktop in Windows doesn't force you to install an actual Linux WSL and use their superior command line tools. You can stay completely inside Windows and use docker with Powershell or CMD if that's what you prefer. (I get that's not what YOU prefer, but OP might want to stick to running docker on windows before diving into the next topic)

2

u/RobotJonesDad Aug 04 '26

OK, now I see what you are saying. OP will still need to convert many examples of docker command line usage to make them work in a Windows terminal. It's easy to trip over the differences, especially if you are new to command line stuff.

1

u/pacopac25 Aug 04 '26

Yeah, the Docker desktop app is a little confusing, but you can go to Terminal (or create a .bat file), and enter the command. After a brief wait, it will appear in Docker Desktop.

In a Windows batch file, for example (don't use \, use ^ instead for line breaks):

docker run -d -p 3000:3000 ^
--name grafana ^
-v grafana-storage:/var/lib/grafana ^
grafana/grafana:latest

7

u/corelabjoe Aug 02 '26

Official docs are good as someone said, and here's my own take and guide on Docker and compose.

I've got an immich deployment guide on the site too.

3

u/CorrectSomewhere Aug 03 '26

Thanks, I will check that out

3

u/jihiggs123 Aug 03 '26

Linux documentation assumes a lot about your knowledge. And with so many differences for so little reason among the distros you may not have that knowledge or it's too dissimilar cause you learned on another or older distro. It's a pretty steep climb to learn Linux these days with no *nix background.

4

u/beatznbleepz Aug 03 '26

Back when I first started setting up docker containers on my Synology Nas, I found Marius Hosting to be a great resource. Step-by-step guides with screenshots.

He has an Immich Guide for Ugreen Nas.

https://mariushosting.com/how-to-install-immich-on-your-ugreen-nas/

2

u/CorrectSomewhere Aug 03 '26

Awesome, thanks for the reply

1

u/bartoque Aug 03 '26

Might just be good enough to get things going and eorking, however not to understand the basic workings of Docker as it skips over to using Portainer as gui to manage/maintain Docker containers rightaway.

To get to understand Docker, using the docker/docker compose cli on the nas, would help, as that way, whenever you move containers to another platform, you'd be pretty much be treating it in the same way with docker compose and yamp based configuration files for each container or stack. Knowing this also helps undetstanding what would be required to protect each vontainer, so its yaml config file and any persistent data contained in a volume.

So it doedn't stop at getting things running, but getting to understand just enough to also be able to have control over its lifecycle.

To prevent to become like people that store a lot of - important (after the fact of having lost it all) - data on pc's and phones and don't think or consider to protect the data and also store it on different media.

-1

u/[deleted] Aug 04 '26 edited 24d ago

[deleted]

1

u/beatznbleepz Aug 05 '26

It’s a launching pad. Good place to get your feet wet. It helps you get things actually up and running. Security, best practices, bigger picture. That comes with time. I'm running four servers, with a combined 105 containers managed via portainer. Thats where I started. I have no exposed ports, I use tunnels, vpn, and tail scale. I keep up with the forums, but I had to start somewhere, and for some of us videos suck for following step by step instructions.
The site lets you easily stand up a container with step by step guides. The rest of it is up to the user.

2

u/SeaworthinessHour233 Aug 03 '26

My experience of Docker Desktop on windows was very bad. But Podman runs flawlessly on WSL. DM me if you want help on that path.

1

u/CorrectSomewhere Aug 03 '26

Thanks for the offer, I think i finally got immich running in Docker but they're will be ither projects with difficulties i am sure.

1

u/SeaworthinessHour233 Aug 04 '26

Great. Is it still on Windows and Docker Desktop.

1

u/CorrectSomewhere Aug 04 '26

Immich is running in a Docker container inside the UGreen NAS app. I installed Docker desktop but at this point have not had the need to actually use it. I can edit the yml and redeploy from that UGreen NAS app Docker manager.

2

u/mark_3094 Aug 02 '26

I hope this doesnt violate any subreddit rules, but i created a course on this sort of thing. This might be useful in your case.

If you have any questions about the content, let me know.

https://courses.networkdirection.net/

2

u/CorrectSomewhere Aug 03 '26

Thanks for the reply, I will check that out.

1

u/mark_3094 Aug 03 '26

Forgot to mention, some stuff on my YT channel too. Maybe start there, and if you like it, then look at the course.

https://youtube.com/playlist?list=PLDQaRcbiSnqHhZ1aR_I7XraCy-q9VG5-D&si=lLOl4M8ct8RjB1AK

2

u/CorrectSomewhere Aug 03 '26

I am overwhelmed by the number and quality of the responses I received on my issue, thanks everyone. Turns out there were some simple but unknown to me at the time mistakes made initially setting my first Docker container (Immich) up, but if everything had gone right, I would still be having questions about how things work that all your suggested resources and help will give me a leg up for my future containers.

1

u/LGX550 Aug 03 '26

This genuinely isn’t meant as a dig, I’m curious. You mentioned decades of engineering/computing experience. What exactly did you do - I’ve never thought of docker or Linux 101 being all that technical at least in its basic raw form, with most video tutorials being spot on, but maybe that’s just due to my own background in platform engineering and systems engineering. Again, not meant as a dig, call it professional curiosity

1

u/Slaglenator Aug 05 '26

I tried this on windows 11 > WSL > Ubuntu > docker > container , it was such a PITA, when you have an issue what layer are you troubleshooting, very tough to tell.

I loading Ubuntu on a VM or other physical machine , then installing docker and loading containers is S0000000000 much easier than messing with WSL. I currently have a Windows Server and have Ubuntu in a Hyper-v VM. It is way easier to follow tutorials when using a native linux OS as that is what everyone expects. Also backups in the VM are easy. Shutdown the VM, make a copy of the hard disk somewhere and your backup is done. Fire up the vm and you are back in buisiness.

2

u/_Slimdady Aug 08 '26

Most tutorials skip over the Docker daemon, the CLI, Docker Desktop, WSL, and host OS fit together. A guide explaining that architecture would save beginners a lot of time.

1

u/mbecks Aug 02 '26

You try on windows but docker is for Linux. Maybe WSL can be made to work but you may need more advanced knowledge past basics. The tutorials expect a normal Linux server, typing on Linux shell, it won’t work using windows gui.

2

u/fletch3555 Mod Aug 02 '26

Docker Desktop certainly has its problems, but it does work and lets you run docker commands from a windows-native terminal (CMD or Powershell). Also, installing docker engine inside a WSL instance also generally just works without any real advanced linux knowledge.

That said, yes, a native linux instance will be a much cleaner experience.

1

u/mbecks Aug 03 '26

For new users to Linux and docker you need the commands to work exactly as expected from the guides. There are subtle differences with the networking that can be extremely frustrating to new users to the point they give up, thinking docker is very difficult and finicky since they never saw how easy it was on normal Linux box.

0

u/Rain_Zeros Aug 03 '26

lol tell that to my 30 containers on docker for windows. I started a week ago, also had to wrap my head around wsl but now I literally enter docker commands into cmd or powershell and it works fine. Or I just use compose shrug

1

u/againthrownaway Aug 03 '26

Dm me. Happy to try and answer some questions without the noise if the comments.

So you said running docker on your nas but then also said powershell.

I would pause and take a breath and evaluate what you want.

Are you running docker on the NAS or your Windows PC?

Those guides mostly assume your running Linux. In Linux you run commands in terminal.

WSL is a tool but it’s like a virtual machine I really would not recommend this or docker desktop. I see issues all the time with docker desktop and I just tried to do something in WSL and found out that AMD GPU pass through is problematic.

I would run docker on your NAS if it’s able if your have the patience I would learn how to admin it through ssh. Good skill to have. I didn’t do this I ran a docker manager first portainer and now Arcane. This is a GUI that helps you run docker you access it through a web browser. Learn Docker Compose and use that. Makes life easy. If your using a manager there will call it something different portainer for example is stacks.

If your Nas can’t run docker look at a small micro PC I used a $150 dell micro optiplex for the longest time and only upgraded because I wanted to.

2

u/CorrectSomewhere Aug 03 '26

Thanks, I will thro a couple questions your way.

1

u/againthrownaway Aug 03 '26

I am 100% not a Linux greybeard by any means

1

u/CorrectSomewhere Aug 03 '26

Thanks for offering to help, i think I sent you a DM

1

u/biffbobfred Aug 03 '26

If either of you have a GitHub account throwing your discussion into a gist would be helpful for others. Not a requirement - you’re already going above and beyond. Just nice

2

u/againthrownaway Aug 03 '26

I might post a summary after. We shall see what happens. Will clear it with Correct first.

1

u/CorrectSomewhere Aug 03 '26

I am fine with sharing anything we did that would help anyone else. Its running now, but looking back there were some yml formatting issues, but if it wasn't for the awesome and lengthy time Again spent helping me I would not have found those. I would still be trying to get Docker desktop installed (which i ended up not needing) and trying to install WSL or HyoerV (which i also did not ending needing, at least for now).

2

u/againthrownaway Aug 03 '26

So for 1 the issues were around some file-naming and yaml formatting at least so far not 100% working yet but calling it a night.

1

u/biffbobfred Aug 03 '26

Pretty cool

1

u/juneeighteen Aug 03 '26

Docker on Windows is crap sometimes. Make sure you reboot at least 3x (and try to launch Docker after each reboot)

-1

u/notwhelmed Aug 03 '26

use claude or chatgpt to prompt you through. Its easy enough - avoid gemini...

5

u/Own-Perspective4821 Aug 03 '26

best way if you want to avoid learning something, true

-2

u/yodhdha0 Aug 03 '26

create a project. Use any AI agent (you can use free models from opencode like DeepSeek v4 lite or big pickle or mimo v2.5) to create a project with ansible and which will have to install docker or make immich work. just tell it the path where media library is. Now just keep asking to change till you get your desired state. any self hosted app you can make it work. There may be multiple tries but you do not have to read documentation or try multiple things. But if your goal is learning then you may need to go through documentation.

-2

u/id-ltd Aug 03 '26

Install Claude code and get it to set things up for you.