[英]Docker: Springboot container cannot connect to PostgreSql Container
[英]Cannot run or connect Portgresql container on Docker
在我的 Windows 10 机器中,我有一个 Java 应用程序并使用以下配置在 ZC5FD214CDD3DB3B4272E 上创建Postgresql
图像:
docker-compose.yml: *
version: '2.0'
services:
postgresql:
image: postgres:11
ports:
- "5432:5432"
expose:
- "5432"
environment:
- POSTGRES_USER=demo
- POSTGRES_PASSWORD=******
- POSTGRES_DB=demo_test
我使用以下命令来组合图像:
cd postgresql
docker-compose up -d
尽管 pgadmin 容器正在 Docker 上运行,但 postgres 容器通常正在重新启动 state 并且某些似乎正在运行 state 一秒钟。 当我查看该容器日志时,我发现我遇到了以下错误:
2021-03-16 09:00:18.526 UTC [82] 致命:数据目录“/data/postgres”的所有权错误
2021-03-16 09:00:18.526 UTC [82] 提示:服务器必须由拥有数据目录的用户启动。
子进程以退出代码 1 退出
*initdb:删除数据目录“/data/postgres”的内容
运行引导脚本...属于该数据库系统的文件将归用户“postgres”所有。 该用户还必须拥有服务器进程。
我尝试应用几个解决方法建议,例如PostgreSQL 和 docker 所有权问题,但没有一个有效。 那么,我该如何解决这个问题呢?
更新:这是我docker-compoese.yml
文件的最后状态:
version: '2.0'
services:
postgresql:
image: postgres:11
container_name: "my-pg"
ports:
- "5432:5432"
expose:
- "5432"
environment:
- POSTGRES_USER=demo
- POSTGRES_PASSWORD=******
- POSTGRES_DB=demo_test
volumes:
- psql:/var/lib/postgresql/data
volumes:
psql:
正如我在评论中已经说过的,我建议使用命名卷。
这是 Postgres 12 的 docker-compose.yml:
version: "3"
services:
postgres:
image: "postgres:12"
container_name: "my-pg"
ports:
- 5432:5432
environment:
POSTGRES_USER: "postgres"
POSTGRES_PASSWORD: "postgres"
POSTGRES_DB: "mydb"
volumes:
- psql:/var/lib/postgresql/data
volumes:
psql:
然后我通过docker volume create psql
创建了psql
卷(所以只是一个没有任何实际路径映射的卷)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.