【问题标题】:Creating a network in Docker Swarm在 Docker Swarm 中创建网络
【发布时间】:2023-04-04 09:05:02
【问题描述】:
  1. 我在 java spring 上有一个连接到 postgres 的 web 应用程序。 Сonnection 字符串到数据库:spring.datasource.url=jdbc:postgresql://postgres:5432/postgres

  2. 有一个 compose-file 可以提升 Web 应用程序和数据库:

version: "3"
services:
  postgres:
    networks:
      - backend
    image: postgres
    ports: 
      - "5432:5432"
    volumes:
      - db-data:/var/lib/postgresql/data

  worker1:
    networks:
      - backend
    image: scripter51/worker
    ports:
      - "8082:8082"
    deploy:
      mode: replicated
      replicas: 2
      placement:
      constraints: [node.role == worker]

networks:
  backend:

volumes:
  db-data:
  1. 命令docker stack deploy --compose-file comp.yml test机器上的公共服务

问题:如果数据库和 Web 应用程序在同一台机器上 - 一切正常,如果不同 - 那么应用程序无法通过服务名称找到数据库。

【问题讨论】:

  • 您是否尝试指定网络驱动程序?并在外部创建网络?你检查了 swarm 中的容器 IP 吗?
  • 网络驱动程序是一个覆盖。网络不是外部的。检查 IP 地址是什么意思?
  • 当我尝试指定一个外部网络时,我收到一条消息说它应该提前创建。
  • 如果你指定一个外部网络,你必须通过 docker network create -d overlay backend 创建它你也可以做一个 docker network inspect(确保范围是 swarm)

标签: spring postgresql docker networking swarm


【解决方案1】:

我能够解决这个问题。 我试图使用 docker 在主机和虚拟机之间创建一个网络 - 显然它不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多