如何备份 localhost 上的数据库
了解在使用 Docker 时,如何配置 Databasus 来备份运行在 宿主机(localhost)上的 PostgreSQL 数据库。
问题所在
如果 Databasus 运行在 Docker 里,而你想备份宿主机 (localhost)上的数据库,就需要把 Docker 配置为 host 网络模式。
默认情况下,Docker 容器运行在隔离网络中,无法访问 localhost 上的服务。host 网络模式让容器与宿主机共享网络命名空间。
Docker Compose 的解决方案
修改 docker-compose.yml 文件,使用 network_mode: host:
services:
databasus:
container_name: databasus
image: databasus/databasus:latest
network_mode: host
volumes:
- ./databasus-data:/databasus-data
restart: unless-stoppeddocker run 的解决方案
使用 --network host 参数:
docker run -d \
--name databasus \
--network host \
-v ./databasus-data:/databasus-data \
--restart unless-stopped \
databasus/databasus:latest💡 提示:使用 host 网络模式时,在 Databasus 的备份配置中可以用 127.0.0.1 或 localhost 作为数据库主机连接本地数据库。你也可以不做端口映射, 直接通过 http://localhost:4005 访问 Databasus 界面。
⚠️ Windows 和 macOS 用户请注意: host 网络模式只在 Linux 上原生可用。在 Windows 和 macOS 上,Docker 运行在 Linux 虚拟机中,因此备份配置里的 数据库主机地址应使用 host.docker.internal 而不是 localhost。