加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

postgresql-Docker Tomcat容器无法访问Postgres容器

发布时间:2020-12-16 03:24:02 所属栏目:安全 来源:网络整理
导读:我有一个带postgres的高山Docker,监听地址为“ *”,监听5432,我正在使用 docker run -d --name postgres me/postgres:v1 以及带有oracle jre8的tomcat容器,我将使用以下方法在其上部署我的其余Web服务: # Set environmentENV CATALINA_HOME /opt/tomcatEXPO

我有一个带postgres的高山Docker,监听地址为“ *”,监听5432,我正在使用

docker run -d --name postgres me/postgres:v1

以及带有oracle jre8的tomcat容器,我将使用以下方法在其上部署我的其余Web服务:

# Set environment
ENV CATALINA_HOME /opt/tomcat

EXPOSE 8080    

# Launch Tomcat on startup
CMD ${CATALINA_HOME}/bin/catalina.sh run
RUN rm -rf ${CATALINA_HOME}/webapps/docs 
    ${CATALINA_HOME}/webapps/examples 
    ${CATALINA_HOME}/webapps/ROOT

# Deploying war file
ADD myapp.war ${CATALINA_HOME}/webapps/ROOT.war

# Restarting server after deploying
CMD ${CATALINA_HOME}/bin/catalina.sh run

并部署

docker run -d -p 8080:8080 --name tomcat --link postgres:postgres me/tomcat:v1

两者都在IP地址为192.168.x.x的笔记本电脑上执行,我检查端口是否正在侦听.

不幸的是,我在tomcat上的Web服务无法使用连接到postgres服务

jdbc:postgresql://192.168.x.x:5432/dBName

我已经尝试过备用方法:我使用以下命令在自己的端口上启动了postgres,

docker run -d -p 5432:5432 --name postgres me/postgres:v1
docker run -d -p 8080:8080 --name tomcat me/tomcat:v1

然后用

jdbc:postgresql://192.168.x.x:5432/dBName

jdbc:postgresql://localhost:5432/dBName

但似乎都不起作用.

在这两种情况下,我都可以看到我的Web服务器在tomcat管理器中运行,并且可以使用以下命令访问我的dB

psql -h localhost -p 5432 -d dBName -U myUser

以及pgAdmin.

解决任何帮助,不胜感激.

解决方案更新:使用–link时,指向postgres(即您的postgresql容器名称)而不是IP

jdbc:postgresql://postgres:5432/dBName

非常感谢@larsks指出这一点.

最佳答案
使用–link时,请指向postgres(即您的postgresql容器名称)而不是IP

jdbc:postgresql://postgres:5432/dBName

因此,要获得完整的解决方案,请运行您的postgresql和tomcat容器

docker run -d --name postgres me/postgresql:v1
docker run -d -p 8080:8080 --name tomcat --link postgres:postgres me/tomcat:v1

(注意这里我没有为postgres容器放置端口,因为它已经在内部暴露了5432,除非您想从主机外部打它,所以您无需在此处指定端口)

并且您的服务器war文件将是上面的jdbc地址,链接到它们后,postgres将自动解析为容器的IP地址.

非常感谢@larsks指出这一点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读