【发布时间】:2014-07-31 22:15:53
【问题描述】:
我已经容器化了一个在 Tomcat 上运行的 Web 应用程序并使用命令启动了容器,
docker run -d -p 8080:8080 tveuser/tve-repository:tve-services
我还在使用以下命令在同一主机上运行 PostgreSQL 容器:
docker run -d -p 80:80 -p 5432:5432 tveuser/tve-repository:tve-postgresql
我通过使用 phpPgAdmin 验证了 PostgreSQL 正在运行,但无法让 tomcat 连接到它。 'docker ps' 还告诉我两个容器都已启动并正在运行。
我通过 tomcat context.xml 将 Web 应用程序与数据库连接起来,该文件有一个类似
的条目<Parameter name="abc.connection.url" value="jdbc:postgresql://1.2.3.4:5432/dbname" />
其中 1.2.3.4 是运行容器的 docker 主机 Ip。但是当我运行 tomcat 容器时出现以下错误:
org.postgresql.util.PSQLException: The connection attempt failed.
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:225)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:64)
at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:136)
...............
Caused by: java.net.NoRouteToHostException: No route to host
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
任何帮助表示赞赏。
【问题讨论】:
标签: postgresql tomcat containers docker