我正在尝试从Docker容器连接到IP为x.x.x.x的数据库
遇到此错误
java.net.NoRouteToHostException: No route to host (Host unreachable)
使用--network = host尝试运行容器,其方法与上述尝试类似
答案 0 :(得分:0)
正如我在评论中提到的,这是示例docker-compose文件。
version: '3.7'
services:
entitygraph:
image: entitygraph-by-jar:latest
container_name: entitygraph
restart: always
networks:
- eg-net
ports:
- 9999:8080
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://eg-mysql/customers?useSSL=false
SPRING_PROFILES_ACTIVE: mysql
eg-mysql:
image: mysql:5.7
restart: always
networks:
- eg-net
container_name: eg-mysql
environment:
MYSQL_DATABASE: customers
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_ROOT_PASSWORD:
networks:
eg-net:
name: eg-net
在此文件中,应用程序实体图试图与mysql通信。在我的应用程序中,与mysql的连接字符串如下所示,
spring.datasource.url=jdbc:mysql://localhost:3306/customers?useSSL=false
因此,docker将spring.datasource.url
属性替换为我在docker-compose文件中指定的属性。请注意,host:port是例如-mysql,docker解析为它的内部IP并将使用它进行通信。
我不知道您的应用程序架构。如果我知道,我可以给您更具体的答案。