Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Is Docker difficult for non technical people?
16 points by 999900000999 5 months ago | hide | past | favorite | 31 comments
So basically I made a small application a few years ago, and before releasing it to the public I want to change it so instead of it racking up fees on AWS, it processes data via a local server .

I'm going to bundle the server into a docker image, but I'm just imagining most people will have no idea how to get it running. Should I stop while I'm ahead?

I'm just worried about spending a lot of time on this, in realizing my target demographic ( musicians) will have no real idea how to use it.




I think you need to consider what Docker is really for. It's use cases are largely consistent local environments for developers to avoid the "it worked on my laptop" problem and a mechanism for running server applications in a relatively hermetic and repeatable manner for enterprises running web services. It can be used as a way to distribute software to consumers for them to run on their own computers, but that isn't really what it was meant for. It's a fair way to deal with server-side software that can be optionally self-hosted but is still a real server with arbitrarily many clients making requests across a network, but I would argue it isn't for software that is absolutely meant to and has to be run on the client and has no true server component. It sounds here like you artificially separated into client and server to potentially run this as a centralized service and then thought the better of it. If there is no reason to have a separate client and server, then don't. If every single user is going to run both their own client and their own server, then you don't have a distributed application. You have a single piece of software that is running as two for no good reason. I would suggest re-working to have a single executable and distribute it using the native packaging formats for your target platforms. That means dmg or pkg for Mac, msi for Windows, deb and rpm for the most popular Linuxes, etc. An Electron app is fine. I'm not saying you need to learn the native platform APIs and GUI frameworks for each major OS, but at least use the native packaging formats. If your users are going to be using Windows and Mac especially, which would seemingly be the case for musicians, giving them software that only runs on Linux and requires them to spin up a virtual machine to run Docker Desktop is particularly shitty.


If I understand you correctly, you have an application that you want to provide to people but you don't want to use your own hosted/cloud servers but serve it locally on the user's computer.

In that case, docker is not necessarily the answer but it could help. Ultimately, you will need to put everything in a simple to install script and let them run locally. Even if you want to package using docker, you will need to create a script that will auto setup docker if not already present and then run it.

I will create a script for windows, mac and Linux (if your users also use Linux). Then in the README, provide instructions how to run that install script. Let the script take care of all lower level things like docker etc.


That is going to create a large barrier to entry for people. It will also mean a whole different type of upgrade to get new versions they are used to, so if they manage to get it setup, they will be unlikely to get new releases.

If you can package it into a standard app that would probably be much better for users.

I’m running my Plex server on my NAS with Docker, and have taken classes at work on Podman from Red Hat. For something I would want to use everyday on my laptop, I couldn’t be bothered to use Docker. It’s good at what it does, but it’s really not made for non-technical people, or people who aren’t interested in learning/managing it.


> target demographic ( musicians) will have no real idea how to use it.

Docker is likely not the answer they're looking for, but you may want to ask your target audience rather than HN.

FWIW, for any software I would prefer distribution-first/source-first over Docker. Docker introduces complexities I don't want to solve for.


Yes I think docker is not suitable for non technical people.

Running docker locally usually means messing around, sometimes troubleshooting and restarting the daemon.

Even if you make your app handle all the commands. It’ll end up not working and the user will give up. Even their technical relative may not be able to fix it!

Instead I would probably make the effort to create seperate Windows, Mac and Linux builds.

If it is a pure Node app for example this might help: https://nodejs.org/api/single-executable-applications.html#s...

There are probably similar options on other stacks.


Musicians will not know what to do with a docker image, even if you provide a bullet-proof script to start it.

Not being mean to musicians, this is true about just about everyone (even some developers).


Musicians aren't going to sit there for hours figuring out how to use this. If it's not "drag download into Applications", it's too hard. If they can't double click to run it, it's too hard.

Don't make your software architecture your user's concern. Package it in something that hides the client server architecture. Make them think it's just another app.


> racking up fees on AWS

Why does everyone just assume they need to use AWS? Get a cheap VPS for projects like this. It's like $10 max all included.

https://www.serverhunter.com/#query=stock%3A%28in_stock+OR+u...


I also don't want to be responsible for processing other people's data.

For example, let's say you upload a song that hasn't been released yet. If it goes to my-server.com and then something strange happens and it leaks it's my fault.

If instead it goes to localhost, that risk isn't there.


And then their local system gets coffee spilled on it and is friend, and they call you asking where their data went...

I totally understand not wanting to be responsible for their data, but you'd better be really sure that they understand how things work. Uploading to a web app makes people think their data is in the cloud. If you want their data saved locally, use a native UI that makes it clear they are saving a file to their system.


Ah I see what you want to do. Maybe have a look at something like ZipApp

https://docs.python.org/3/library/zipapp.html


Docker is difficult, k8s is impossible.


>Docker is difficult, k8s is impossible.

At least [manual] image management for k8s doesn't have to be:

https://github.com/containerd/nerdctl


Make it a hosted web app.

Open browser, go to URL, it runs. It works for Doom 3: https://wasm.continuation-labs.com/d3demo/

That's the easiest "container" solution there is.


Yes. Its difficult for me as a 0.1x programmer.

I just wanted to pull come code, build a deb, and get it out. Docker probably isn't the right tool but it's what I was told to use. The hardest part was discovering how to get a single file out of it.


If you don't know anything about infrastructure or software packaging I bet it could be difficult. Knowing all of this, when I first learned docker it was similar to learning a new scripting language. Not really difficult, but a lot of new concepts


If your an end user you just need to start the docker image up.

I'm going to open source the server portion and put it up on docker hub.

It should literally be.

docker run my_server_image .

The problem is alot of people won't want to actually install docker and get this thing setup.


I was recently pleasantly surprised as to how well a .jar works on macOS, Windows, and Linux - but only after you install a JRE, unfortunately.

Golang seems to have good cross-platform abilities as well, though I have less experience with it for GUI apps.


In large organisations I've worked at previously, virtualisation has been disabled at a bios level and this has been a pain to get round, so for commercial users this would be enough to rule it out.


I’m a musician. For the vast majority of colleagues I know (classical), having to use docker will make it a non-starter. But I’m also curious what your app does, if you don’t mind sharing details!


It's basically a lyric video generator. Right now I'm processing the lyric transcription on a server, but I'd rather users do this locally so I don't have to spend money on that.

I've actually made a few lyric videos with my own music, but I just don't want to have to manage the data of other people.


Maybe look into Electron? As I understand, you basically have a web client and Node server packaged up as an executable.


I'm not a dev but more technical than the vast majority of the non-dev population- I couldn't get docker to work and gave up trying to get it to work.


Yes, it's way too complicated. You either need to run your app as a SaaS or give people an executable they can just run.


I suggest reaching out to people from your target demographic and asking them.


That's why Microsoft tell people to distribute software via .exe


Package it for unraid


Does unraid support ova ?


app.kubevirt.yaml


No its not , you can start learning from the official website https://docs.docker.com/


Non-technical people are going to take one look at that page and nope right out.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: