nonameiguess
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.
codegeek
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.

al_borland
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.

nullindividual
> 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.

langcss
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.

philomath_mn
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).

solardev
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.

JSDevOps
> 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...

musicale
Docker is difficult, k8s is impossible.
shrimp_emoji
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.

Am4TIfIsER0ppos
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.

timliu9
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
musicale
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.

thorin
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.
timbeccue
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!
olegious
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.
leros
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.
yen223
I suggest reaching out to people from your target demographic and asking them.
akasakahakada
That's why Microsoft tell people to distribute software via .exe
ApolloRising
Package it for unraid
moondev
app.kubevirt.yaml
vinny_36
No its not , you can start learning from the official website https://docs.docker.com/