向Docker容器上的外部主机发出请求

时间:2019-10-17 15:38:47

标签: vpn

我正在尝试从Docker容器连接到IP为x.x.x.x的数据库

遇到此错误

java.net.NoRouteToHostException: No route to host (Host unreachable)

使用--network = host尝试运行容器,其方法与上述尝试类似

1 个答案:

答案 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并将使用它进行通信。

我不知道您的应用程序架构。如果我知道,我可以给您更具体的答案。