Hello,

As the title suggests, how do you manage your DBs for docker services.

Do you spin a new DB for every new docker cluster or do you have a centralized DB that is accessible to the docker clusters.

What are the pros and cons of both method?

For the moment, I spin a new DB for every services as I feel it is easier to backup the service in case of a problem.

  • Jul (they/she)@piefed.blahaj.zone
    link
    fedilink
    English
    arrow-up
    4
    ·
    2 days ago

    I run a single instance of Postgres and one of MariaDB on my NAS that all services connect to. And all of my containers store their settings in NFS shares from that NAS and backup most other things to the NAS. This greatly simplifies off-site backups overall when a copy of almost everything critical lives on the NAS.

    Of course, the NAS needs to be powerful enough to handle the load, but since settings don’t get changed often and backups are during off hours and NFS has good caching anyway, the DBs are really the only heavy load on the NAS outside of storing and serving media. It has plenty of memory and has two 2.5Gb ports trunked together and a couple of small SSDs for fast caching in addition to the RAID array of HDDs. So it’s easily able to handle all of its file sharing duties as well as hosting the DBs.

    Only negative might be that there’s no fail over if the NAS goes down. But I also don’t have a second router, so that’s another even more devastating single point of failure. But since everything critical is backed up to the NAS and then off-site, it’s an acceptable risk considering the cost to properly remediate it and the unlikelihood of major issues outside of times I’m doing maintenance…