当前位置: 首页 > 知识库问答 >
问题:

Docker-将容器连接到本地数据库[重复]

江丰羽
2023-03-14

我正在处理dockerize我的本地服务器,在那里有数据库,应用程序服务器和所有额外的配置来部署我的应用程序。目前,我已经创建了3个docker容器,运行像Tomcat或WildFly这样的应用程序服务器,并公开了部署的应用程序的端口,这些端口Java并从/读写数据。到我本地的数据库。在每个应用程序的persistence.xml文件中,我已经通过localhost在我的实际配置中配置了访问权限,没有docker也可以。

我想将容器上的应用程序连接到主机上对应的数据库,如何才能做到这一点?

我创建了如下容器:

docker run -d --name app_server1 -p 80:80 wildfly_website:1.0
docker run -d --name app_server2 -p 8130:8130 geoserver:1.0

共有1个答案

柯阳曦
2023-03-14

听起来像是您在persistence.xml文件中指定的访问试图访问docker容器中的那些端口。您希望访问主机上容器之外的那些端口,而不是图像所认为的localhost实际上是您的docker容器。

查看这些SO帖子,这些帖子详细介绍了解决这个问题的方法。

链接1

链接2

 类似资料:
  • 而不是在Docker中或单独的卷中拥有MySQL数据库,我希望Docker连接到我在本地运行的已有的MySQL数据库。 这是我的docker-compose.yml文件:

  • 问题内容: 我最近一直在研究Docker和QGIS,并按照本教程中的说明安装了一个容器。 尽管我无法连接到包含我的所有GIS数据的localhost postgres数据库,但一切工作都很好。我认为这是因为我的postgres数据库未配置为接受远程连接,并且已经按照本文中的说明编辑了postgres conf文件以允许远程连接。 尝试连接到在Docker中运行QGIS的数据库时,我仍然收到错误消息

  • 我最近一直在玩Docker和QGIS,并按照本教程中的说明安装了一个容器。 我运行的是Ubuntu 14.04;Postgres 9.3

  • 我正在运行Docker容器,其中运行一个jar文件。 此jar文件需要访问Elasticsearch以读取数据,并且此Elasticsearch服务安装在本地计算机上(不在Docker容器中) 我需要从Docker容器连接到本地Elasticsearch服务以使其正常工作 我在Dockerfile中写了EXPOSE 9200 9300 service-port,我的Docker run命令如下,

  • 在将Django docker容器连接到Postgres数据库时,我收到以下错误。 下面是运行容器的Dockerfile pg_hba.conf->宿主all all 0.0.0.0/0 md5 我已经读到上面的以下细节打开数据库上的连接。

  • 我试图部署一个与主机数据库一起工作的Drupal6Docker容器(在将其部署到远程数据库之前出于测试目的),但它就是不想工作,尽管我找到了不同的建议。(特别是在这个来自Docker容器内部的问题中,我如何连接到机器的本地主机?当它谈到主机模式时,所以即使这个问题看起来很像,它也不觉得它是重复的) DockerFile Docker-compose.yml 对于数据库连接,我指定了以下设置: 驱动