我已经使用下一个命令运行 postgresql docker 容器
docker run -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust -v /var/lib/postgresql/data:/var/lib/postgresql/data postgis/postgis
pg_hba.conf 文件包括下一行:
# warning trust is enabled for all connections
host all all all trust
来自主机的连接请求:
psql -h localhost -U fake
数据库日志中的响应:
FATAL: role "fake" does not exist
测试 Dockerfile:
FROM postgres:latest
RUN apt-get update && apt-get install -y postgresql-client
CMD ["psql", "-U", "fake", "-h", "localhost", "-p", "5432"]
测试 docker 容器失败并出现下一个错误:
psql:错误:连接到“localhost”(::1)的服务器,端口 5432 失败:连接被拒绝 服务器是否在该主机上运行并接受 TCP/IP 连接? 连接到“localhost”(127.0.0.1) 处的服务器,端口 5432 失败:连接被拒绝 服务器是否在该主机上运行并接受 TCP/IP 连接?
我在数据库日志中没有看到任何内容。
为什么我无法从测试 docker 容器发出请求?
要连接两个不同的 docker 容器,我必须提供下一个参数
--network="host"
。
正确的命令是
docker run --network="host" test