For user-readable files or media I store them under ~/docker/data, and for everything else I store them under ~/docker/stacks/[service] where ~/docker/stacks is maintained by Dockge.

Is there a better way to do this?

  • DasFaultier@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    20
    ·
    2 天前

    I tend to use /opt/[service]/, like for example /opt/forgejo/. It’s outside of any user’s Homedir and it seems to fit into what the FHS 3.0 (Filesystem Hierarchy Standard) defines.

    • SolidGrue@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      2 天前

      I use /srv/[service] for services by the same logic, and leave /opt for local user apps. It’s kind of a coin toss though. On another day I night have decided differently.

    • eli@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 天前

      I do this as well. Though if I’m deploying a stack(grafana+prometheus+cadvisor) then it all goes under a single folder like /opt/stackname/

      But if I’m running multiple services that are mostly separate or not in the same stack then they go in their own folders like /opt/nginx/ and /opt/grafana/

  • panda_abyss@lemmy.ca
    link
    fedilink
    English
    arrow-up
    7
    ·
    edit-2
    1 天前

    My docker mounts just point to the folder they live in.

    I’d rather have the data stored next to the config so it’s easy to find and manage.

    So a folder would be services and have a compose file, config folder, and a data folder with subdirectories per service I run. Any custom dockerfiles get a folder with their build scripts.

  • GreenKnight23@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    23 小时前

    I mount them directly from the NAS inside docker volumes.

    if there are any configuration/local data files that need to be persistent, those are usually kept in ~/project/{container}. the compose file is kept at the root project directory.

    home user is a daemon user created specifically for running docker containers that does not have root privileges.

  • Damarus@feddit.org
    link
    fedilink
    English
    arrow-up
    14
    ·
    2 天前

    I have multiple compose stacks with one folder each, and they also contain all the bind volumes and any other extra files needed.

  • tal@lemmy.today
    link
    fedilink
    English
    arrow-up
    6
    ·
    2 天前

    Bind mounts aren’t specific to Docker. You’re asking specifically about bind mounts as used by Docker?

    • fizzle@quokk.au
      link
      fedilink
      English
      arrow-up
      2
      ·
      21 小时前

      This is me.

      For example, /srv/docker/synching contains:

      compose.yml .env ./Sync

      That last one is a directory bound to the container which contains all my sync folders.

      Occasionally it makes more sense to put the mounted folder in /srv like /srv/photos is mounted by /srv/docker/photoprism/compose.yml

      However, thats a rarity. Things mostly accessed by a single compose stack are kept alongside the other files for that stack.

  • HybridSarcasm@lemmy.worldM
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    2 天前

    /docker/compose/<project> for compose and env files

    /docker/data/<project> for data to be retained

    I let the docker overlay handle all the volatile data.

  • bulwark@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 天前

    I use the same naming convention as you for stacks, but since I’m running a docker swarm I have to mount the NFS in the exact same way on all my nodes, which are just 3 R-Pi 4s. It’s a little janky in that if the NFS goes offline all my services go along with it. Traefik works really well with a swarm, especially when you have it set to auto pick up any services and proxy them.

  • TheRagingGeek@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    1
    ·
    1 天前

    I run a swarm and the NAS~esque machine has its exportfs entries under /export so all my docker persistence data goes into /export/docks/<stackname>/<service>/<mount>

  • HereIAm@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    1
    ·
    2 天前

    I didn’t think much of what the “correct” location would be. But i have a general kinda everything share at /var/share/[music,books,video,user folders,repo]. And then any caching or config data sits in that dockers home folder under /etc/docker/[jellyfin,immich,kavita,etc] together with its docker-compose file. All docker services run under the group user so they all have access to the share.

  • emax_gomax@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    1
    ·
    2 天前

    Xdg. Its the only attempted standard for where to put things. Persistent data in ~/.config/docker/service. Others in similar directories under ~/.local/share, ~/.cache, etx.