From 1724161ad21b0135b440af177ca7c58b5d7e7033 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=AD=E6=B3=B3=E8=BE=B0?= <312189607@qq.com> Date: Wed, 14 May 2025 16:36:14 +0800 Subject: [PATCH] =?UTF-8?q?postgres=E4=B8=8Eadminer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adminer/adminer5/docker-compose.yml | 10 +++++++ adminer/adminer5/docker-run.sh | 3 ++ .../adminer5/img/image-20250516111535244.png | Bin 0 -> 29715 bytes adminer/adminer5/readme.md | 26 ++++++++++++++++++ postgres/postgres17/docker-compose.yml | 13 +++++++++ postgres/postgres17/docker-run.sh | 1 + 6 files changed, 53 insertions(+) create mode 100644 adminer/adminer5/docker-compose.yml create mode 100644 adminer/adminer5/docker-run.sh create mode 100644 adminer/adminer5/img/image-20250516111535244.png create mode 100644 adminer/adminer5/readme.md create mode 100644 postgres/postgres17/docker-compose.yml create mode 100644 postgres/postgres17/docker-run.sh diff --git a/adminer/adminer5/docker-compose.yml b/adminer/adminer5/docker-compose.yml new file mode 100644 index 0000000..768334d --- /dev/null +++ b/adminer/adminer5/docker-compose.yml @@ -0,0 +1,10 @@ +services: + # 数据库可视化管理工具 + adminer: + image: adminer:5.2.1 + container_name: adminer-521 + environment: + - ADMINER_DESIGN=mvt # 可选:主题(esterka、mvt、pepa-linha) + - ADMINER_DEFAULT_SERVER=postgres:5432 # 可选:默认连接数据库 + ports: + - 8080:8080 \ No newline at end of file diff --git a/adminer/adminer5/docker-run.sh b/adminer/adminer5/docker-run.sh new file mode 100644 index 0000000..e807d4a --- /dev/null +++ b/adminer/adminer5/docker-run.sh @@ -0,0 +1,3 @@ +docker run -d --name adminer-521 -p 8080:8080 -e ADMINER_DESIGN=mvt -e ADMINER_DEFAULT_SERVER=postgres:5432 adminer:5.2.1 +# 建议指定网络名称,连接容器的时候更方便 +# docker run -d --name adminer-521 -p 8080:8080 --network 网络名称 -e ADMINER_DESIGN=mvt -e ADMINER_DEFAULT_SERVER=postgres:5432 adminer:5.2.1 \ No newline at end of file diff --git a/adminer/adminer5/img/image-20250516111535244.png b/adminer/adminer5/img/image-20250516111535244.png new file mode 100644 index 0000000000000000000000000000000000000000..1b397a46ef02701058ee47a0d1121fb1927f45d4 GIT binary patch literal 29715 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 z

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 github主页:[vrana/adminer: Database management in a single PHP file](https://github.com/vrana/adminer) +> +> 可选主题:[adminer/designs at master · vrana/adminer](https://github.com/vrana/adminer/tree/master/designs) + +```yaml +services: + # 数据库可视化管理工具 + adminer: + image: adminer:5.2.1 + container_name: adminer-521 + environment: + - ADMINER_DESIGN=mvt # 可选:主题(esterka、mvt、pepa-linha) + - ADMINER_DEFAULT_SERVER=postgres:5432 # 可选:默认连接数据库 + ports: + - 8080:8080 +``` + +```bash +docker run -d --name adminer-521 -p 8080:8080 -e ADMINER_DESIGN=mvt -e ADMINER_DEFAULT_SERVER=postgres:5432 adminer:5.2.1 +# 建议指定网络名称,连接容器的时候更方便 +# docker run -d --name adminer-521 -p 8080:8080 --network 网络名称 -e ADMINER_DESIGN=mvt -e ADMINER_DEFAULT_SERVER=postgres:5432 adminer:5.2.1 +``` + +注意:服务器文本框这里,如果使用容器别名,adminer必须于数据库在同一个docker网络下 + +![image-20250516111535244](img/image-20250516111535244.png) \ No newline at end of file diff --git a/postgres/postgres17/docker-compose.yml b/postgres/postgres17/docker-compose.yml new file mode 100644 index 0000000..f92db88 --- /dev/null +++ b/postgres/postgres17/docker-compose.yml @@ -0,0 +1,13 @@ +services: + postgres: + image: postgres:17 + container_name: postgres-17 # 可选:容器别名 + environment: + - TZ=Asia/Shanghai # 可选:手动指定时区 + - POSTGRES_PASSWORD=123456 # 连接密码 + - POSTGRES_USER=milkbox # 数据库用户名 + - POSTGRES_DB=testdb # 默认数据库 + ports: + - 5432:5432 + volumes: + - /home/guo/my-volume/postgres/postgres17:/var/lib/postgresql/data # 映射数据,其中包含配置文件 \ No newline at end of file diff --git a/postgres/postgres17/docker-run.sh b/postgres/postgres17/docker-run.sh new file mode 100644 index 0000000..ad5e369 --- /dev/null +++ b/postgres/postgres17/docker-run.sh @@ -0,0 +1 @@ +docker run -d --name postgres-17 -e TZ="Asia/Shanghai" -e POSTGRES_PASSWORD=123456 -e POSTGRES_USER=milkbox -e POSTGRES_DB=testdb -p 5432:5432 -v /home/guo/my_docker_volume/postgres/postgres17:/var/lib/postgresql/data postgres:17 \ No newline at end of file -- Gitee