postgresql - docker 容器中的数据库
问题描述
我正在尝试使用 postgres docker 映像创建一个测试数据库,如此处所述
不同之处在于我使用docker run -d --net host --name my-postgres-container my-postgres-image
.
当我尝试使用 Dbeaver 连接到数据库时,我得到FATAL: password authentication failed for user "postgres"
. 如果我尝试不使用本地主机,而是按照链接中的描述映射端口,我会得到Connection Refused
. 我读到,在这种情况下,我应该将 localhost 替换为使用docker inspect [container id]
. 但是那里什么都没有:
"Networks": {
"host": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "5f1358819f5ce262fc1ca2ed0d56a77a78601ecd863105d8fad67f2c01aa8606",
"EndpointID": "",
"Gateway": "",
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "",
"DriverOpts": null
}
}
我不知道如何使用此策略正确创建和连接。
解决方案
当您运行 postgres 时,您必须传递user
和password
作为环境参数。Kong - postgres 示例
docker run -d --name kong-database \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=kong" \
postgres:9.6
在这里,您使用了自己的 PostgreSQL 映像。
确保您有以下内容Dockerfile
ENV POSTGRES_USER $USER
ENV POSTGRES_PASSWORD $PASSWORD
推荐阅读
- docker - 使用 docker compose 安装 nextcloud 时出错
- c++ - 如何在 C++ 中序列化结构数据?
- c# - 格式化以下 JSON 的正确方法是什么?
- alamofire - 如何在 Alamofire 5 中实现会话委托的 taskDidReceiveChallengeWithCompletion
- mysql - 我可以让 MYSQL 自动将所有日期时间数据转换为不同的时区吗?
- scala - Kubernetes 上的 Prisma rabbitmq 部署不工作
- html - 为什么背景过渡:linear-gradient() 在悬停时不起作用?
- regex - pcregrep 或 grep:使用前瞻搜索不起作用
- python - 在尝试微调 CNN 模型时,我如何决定一个合适的头部网络来附加到模型上?
- react-native - 如何在本机反应中清楚地删除库?