For the vast majority of docker images, the documentation only mention a super long and hard to understand “docker run” one liner.

Why nobody is placing an example docker-compose.yml in their documentation? It’s so tidy and easy to understand, also much easier to run in the future, just set and forget.

If every image had an yml to just copy, I could get it running in a few seconds, instead I have to decode the line to become an yml

I want to know if it’s just me that I’m out of touch and should use “docker run” or it’s just that an “one liner” looks much tidier in the docs. Like to say “hey just copy and paste this line to run the container. You don’t understand what it does? Who cares”

The worst are the ones that are piping directly from curl to “sudo bash”…

@OmltCat@lemmy.world
link
fedilink
English
371Y

Because it’s “quick start”. Least effort to get a taste of it. For actual deployment I would use compose as well.

Many project also have a example docker-compose.yml in the repository if you dig not so deep into it

There is https://www.composerize.com to convert run command to compose. Works ~80% of the time.

I honestly don’t understand why anyone would make “curl and bash” the officially installation method these days, with docker around. Unless this is the ONLY thing you install on the system, so many things can go wrong.

Anony Moose
link
fedilink
English
11Y

Out of curiosity, is there much overhead to using docker than installing via curl and bash? I’m guessing there’s some redundant layers that docker uses?

@Shrek@lemmy.world
link
fedilink
English
51Y

Of course, but the amount of overhead completely depends per container. The reason I am willing to accept the -in my experience- very small amount of overhead I typically get is that the repeatability is amazing with docker.

My first server was unRAID (freebsd, not Linux), I setup proxmox (debian with a webui) later. I took my unRAID server down for maintenance but wanted a certain service to stay up. So I copied a backup from unRAID to another server and had the service running in minutes. If it was a package, there is no guarantee that it would have been built for both OSes, both builds were the same version, or they used the same libraries.

My favorite way to extend the above is Docker Compose. I create a folder with a docker-compose.yml file and I can keep EVERYTHING for that service in a single folder. unRAID doesn’t use Docker Compose in its webui. So, I try to stick to keeping things in Proxmox for ease of transfer and stuff.

Anony Moose
link
fedilink
English
11Y

Makes sense! I have a bunch of services (plex, radarr, sonarr, gluetun, etc) on my media server on Armbian running as docker containers. The ease of management is just something else! My HC2 doesn’t seem to break a sweat running about a dozen containers, so the overhead can’t be too bad.

@Shrek@lemmy.world
link
fedilink
English
181Y

I used to host composerize. Now I host it-tools which has its own version and many other super helpful tools!

Sir Gareth
link
fedilink
English
01Y

You have changed my life today.

@Shrek@lemmy.world
link
fedilink
English
11Y

No, the creator of it-tools did. I just told you about it. Give them a star on GitHub and maybe donate if you can ❤️

@Heastes@lemmy.world
link
fedilink
English
61Y

I was going to mention it-tools. It’s great!
And if you need more stuff in a similar vein, cyberchef is also pretty neat.

@Shrek@lemmy.world
link
fedilink
English
11Y

Nice! I wonder if there’s anything one has that the other doesn’t.

Omg I never knew about composerize or it-tools. This would save me a ton of headaches. Absolutely using this in the future.

@SilentMobius@lemmy.world
link
fedilink
English
3
edit-2
1Y

Docker-compose is a orchestration tool that wraps around the inbuilt docker functions that are exposed like “docker run”, when teaching people a tool you generally explain the base functions of the tool and then explain wrappers around that tool in terms of the functions you’ve already learned.

Similarly when you have a standalone container you generally provide the information to get the container running in terms of base docker, not an orchestration tool… unless the container must be used alongside other containers, then orchestration config is often provided.

I used docker run when I first started, I think it’s a fairly easy entry point that “just works”.

However I would never really go back to it, since compose is a lot tighter and offers a better sense of overview and control

Eager Eagle
link
fedilink
English
21Y

Even for the one-liner argument - a better one liner than any docker run is docker compose up [-d].

Virgin docker compose. Chad Kubectl apply.

antsu
link
fedilink
English
11Y

Kubernetes is just docker-compose with extra steps.

/s

@ilmagico@lemmy.world
link
fedilink
English
41Y

I don’t think you’re out of touch, just use docker compose. It’s not that hard to conver the docker run example command line into a neat docker-compose.yml, if they don’t already provide one for you. So much better than just running containers manually.

Also, you should always understand what any command or docker compose file does before you run it! And don’t blindly curl | bash either, download the bash script and look at it first.

platysalty
link
fedilink
51Y

Nah I’ll just copy paste half the tutorial in one go and then blame others when things break

@radiated@lemm.ee
link
fedilink
English
21Y

Average linux user /s

Max-P
link
fedilink
English
51Y

Plain docker is useful when running some simple containers, or even one-off things. A lot of people thing about containers as long running services, but there’s also many containers that are for running essentially a single command to completion and then shuts down.

There’s also alternate ways to handle containers, for example Podman is typically used with systemd services as unlike Docker it doesn’t work through a persistent daemon, so the configuration goes to a service.

I typically skip the docker-compose for simple containers, and turn to compose for either containers with loads of arguments or multi-container things.

Also switching between Docker and Podman depending on the machine and needs.

@Knusper@feddit.de
link
fedilink
English
61Y

Personally, I do usually want the docker run command. Much easier to use when orchestrating the deployment with other tools.

For readability, I just line-break the command after each argument…

@d4nm3d@demmy.co.uk
link
fedilink
English
171Y

you don’t have to decode anything… just throw it in here :

https://www.composerize.com

@giacomo@lemmy.world
link
fedilink
English
01Y

I’m sure someone has written a script to convert docker run commands to compose files.

I am usually customizing variables and tend to use compose for anything I am planning on running in “production”. I’ll use run if it’s a temporary or on-demand use container.

It’s not really that much effort to write a compose file with the variables from a run command, but you do have to keep an eye on formatting.

@Zephyr@feddit.nl
link
fedilink
English
01Y

use chatgpt for that… It can also create your ansible task…

@giacomo@lemmy.world
link
fedilink
English
-11Y

Great… For chatgpt…

Eager Eagle
link
fedilink
English
2
edit-2
1Y

it turns out GPT converts plain docker commands into docker compose files well enough to me, it’s been my go-to when I need to create a compose YAML. Checking a YAML and making one or two small corrections is even faster than entering all info in a form like Docker Compose Generator.

I too am endlessly frustrated by documentation that lacks compose file examples.

Fortunately, this exists: Docker Compose Generator

@Toribor@corndog.uk
link
fedilink
English
01Y

I’ve started replacing my docker compose files with pure ansible that is the equivilent of doing docker run. My ansible playbooks look almost exactly like my compose file but they can also create folders, set config files or cycle services when configs are updated.

It’s been a bit of a learning process but it’s replaced a lot what was previously documentation with code instead.

@Zephyr@feddit.nl
link
fedilink
English
11Y

I did the same, but I started from my list of run scripts… I used ChatGPT to create them, took 2 minutes…

@Toribor@corndog.uk
link
fedilink
English
11Y

Hahaha, I’ve been using ChatGPT in the exact same way. It requires a bit of double-checking but it really speeds things up a lot.

Captain Howdy
link
fedilink
English
11Y

Check out the GitHub project ansible-nas

@Toribor@corndog.uk
link
fedilink
English
11Y

ansible-nas

Wow, yeah this is exactly the sort of roles/playbooks that I’ve been building. I’m definitely using this as a source before starting my own from scratch. Thanks for sharing.

@hoodlem@hoodlem.me
link
fedilink
English
11Y

Totally agree. I need to then pick apart the run command to make the docker compose file, then get something wrong and need to do a search.

First version of my server, I wrote a bunch of custom shell scripts to execute docker run statements to launch all my containers b/c I didn’t know docker at all and didn’t want to learn compose.

Current version of my server, I use docker compose. But all the containers I use come from linuxserver.io, and they always give examples for both. I use ansible to deploy everything.

Create a post

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.

Rules:

  1. Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it’s not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

  • 1 user online
  • 279 users / day
  • 589 users / week
  • 1.34K users / month
  • 4.55K users / 6 months
  • 1 subscriber
  • 3.47K Posts
  • 69.4K Comments
  • Modlog