【发布时间】:2019-09-28 14:40:24
【问题描述】:
我有 2 个容器。其中一个是postgresql,一个是tomcat。 我试图启动应用程序,但总是得到 o.h.e.jdbc.spi.SqlExceptionHelper - 连接被拒绝。检查主机名和端口是否正确以及 postmaster 是否接受 TCP/IP 连接。错误。请帮帮我,我没有太多时间。 最好的问候。
我尝试了不同类型的 docker compose。但我总是遇到同样的错误。
16:48:09.557 [localhost-startStop-1] ERROR o.h.e.jdbc.spi.SqlExceptionHelper - Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
我的连接网址
db.user=admin
db.password=123456
db.url=jdbc:postgresql://moneytransferdb:5410/moneytransfer
我的 docker 撰写 yml
version: '3'
services:
moneytransferdb:
image: postgres
restart: always
ports:
- "5410:5432"
volumes:
- mydatavol:/var/lib/postgresql/data
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: 123456
POSTGRES_DB: moneytransfer
container_name: moneytransfer
networks:
- main
tomcat:
image: tomcat
ports:
- "8080:8080"
volumes:
- ../tcmb/tcmb-service.war:/usr/local/tomcat/webapps/tcmb.war
container_name: tcmb
depends_on:
- moneytransferdb
links:
- moneytransferdb
restart: always
networks:
- main
volumes:
mydatavol: {}
networks:
main:
【问题讨论】:
-
对于容器间通信,您始终需要服务内部端口,此处为 5432。除非您希望从 Docker 空间外部访问数据库,否则您不需要特别声明
ports:。 -
(为了简单起见,还可以考虑删除
container_name:、links:和所有networks:部分;您可以删除所有这些部分而不会干扰容器的正常操作。 ) -
泰大卫。成功了
标签: java postgresql docker tomcat