You would expose the port to your host which makes the db acessible by anything running on the host, docker or native.
Something like
`port
5432:5432 `
But I would recommend running a dedicated db for each service. At least that’s what I do.
Simpler setup and therefore less error-prone
More secure because the db’s don’t need to be exposed
Easier to manage because I can independently upgrade, backup, move
Isn’t the point about containers that you keep things which depend on each other together, eliminating dependencies?
A single db would be a unecessary dependency in my view. What if one service requires a new version of MySQL, and another one does not yet support the new version?
I also run all my databases via a bind mount
`volume
./data:/etc/postgres/data…`
and each service in it’s own directory.
E.g. /opt/docker/nextcloud
That way I have everything which makes up a service contained in one folder. Easy to backup/restore, easy to move, and not the least, clean.
You would expose the port to your host which makes the db acessible by anything running on the host, docker or native. Something like
`port
But I would recommend running a dedicated db for each service. At least that’s what I do.
Isn’t the point about containers that you keep things which depend on each other together, eliminating dependencies? A single db would be a unecessary dependency in my view. What if one service requires a new version of MySQL, and another one does not yet support the new version?
I also run all my databases via a bind mount
`volume
and each service in it’s own directory. E.g. /opt/docker/nextcloud
That way I have everything which makes up a service contained in one folder. Easy to backup/restore, easy to move, and not the least, clean.
I would just have Postgres running statically on some solid hardware. It’s easy to configure permissions and connections, too.
Not too hard to set up streaming replication for a hot standby if you wanna be sure (or offload some reads).
I use Postgres btw