Docker 安装 Postgresql 及其工具

笔记 创建于: , 更新于: | Docker

目录

Postgresql

获取 postgresql 镜像

1
docker pull postgres

安装

1
2
3
4
5
docker run --restart=always -d \
  --name postgres -p 5432:5432 \
  -v [本机的数据目录]:/var/lib/postgresql/data \
  -e POSTGRES_PASSWORD=root-password \
  postgres:latest

如果要指定 IP

1
2
3
4
5
6
7
8
docker run --restart=always -d \
  --net mynet \
  --ip 192.168.123.20 \
  --name postgres \
  -p 5432:5432 \
  -v /data/postgres/data:/var/lib/postgresql/data \
  -e POSTGRES_PASSWORD=root-password \
  postgres:latest

Web 管理工具 pgadmin4

官方的 web 管理工具,链接地址: https://www.pgadmin.org/

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#!/bin/bash

docker pull docker.io/dpage/pgadmin4

docker run -p 5050:80 \
    --name "pgAdmin" \
    -e "[email protected]" \
    -e "PGADMIN_DEFAULT_PASSWORD=Admin888" \
    -d docker.io/dpage/pgadmin4
  

Web 管理工具 dbgate

官方网站: https://www.dbgate.io/ Docker 地址: https://hub.docker.com/r/dbgate/dbgate

1
2
3
#!/bin/bash

docker run -it --name dbgate-instance --restart always -p 3090:3000 -d dbgate/dbgate

支持多种数据库,有 WEB 版的,也有桌面版的,WEB 版需要自己设置 BASE AUTH, 但实际使用时会重复弹出验证提示框。

如果遇到不在白名单的情况。需要本地打包上传到服务器。

1
2
docker pull --platform linux/amd64 dbgate/dbgate:latest
docker save -o dbgate.tar dbgate/dbgate:latest

会在命令行所在的目录内增加一个 adminmongo.tar 的文件。 把文件上传到服务器后执行:

1
podman load -i dbgate.tar

导入完后,直接运行上面的 安装命令。

链接

dbgate 的链接与 navicat 不一样,如果使用常规的方式总出现 认证失败,可以试试用 Use database URL 的方式,例如:

1
mongodb://用户名:密码@192.168.0.2:27017/demo?authSource=demo

Nginx 配置

针对 base auth 无尽弹窗,需要在 Nginx 中增加配置如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
auth_basic "Restricted Content";
auth_basic_user_file /data/htpass;
satisfy all;

location ~* ^/(socket\.io|websocket|apps|files|cloud|plugins|connections|server-connections|database-connections|auth|config|api/v1/ws|ws) {
    auth_basic off;
    proxy_pass http://127.0.0.1:3090;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location ~* \.(png|jpg|jpeg|gif|svg|ico|json)$ {
    auth_basic off;

    proxy_pass http://127.0.0.1:3090; 
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}
笔记标签:

评论 ( 如有任何问题,请在下方留言和讨论 )