我有一个带有覆盖网络(名称覆盖测试)的Docker群集群,具有单个管理器和2个工作程序节点。 工作节点之一仅包含数据库服务器容器。 当我在群集上部署堆栈并且我的堆栈不包含在工作程序节点上部署数据库服务器服务的说明时,我遇到了一个问题,即节点上没有网络创建。我的任务是手动将数据库服务器容器连接到该网络。 我看到解决此问题的唯一方法是使具有db服务器的该节点成为swarm管理器,但是swarm管理器应仅是其他主机。
是否有其他想法可以解决? 预先感谢。
Docker进行部署:
version: "3.5"
services:
test-front:
build: ./host-front/test-front
image: test-front:alpine-3
depends_on:
- test-back
networks:
- test-multihost
deploy:
replicas: 1
placement:
constraints:
- node.labels.nodename == front
test-back:
build: ./host-front/test-back
image: test-back:openjdk8-alpine
restart: always
networks:
- test-multihost
depends_on:
- test-db
deploy:
replicas: 1
placement:
constraints:
- node.labels.nodename == front
test-adapter:
build: ./host-front/test-adapter
image: test-adapter:openjdk8-alpine
restart: always
networks:
- test-multihost
depends_on:
- test-core
deploy:
replicas: 1
placement:
constraints:
- node.labels.nodename == front
test-core:
build: ./host-main/test-core
image: test-core:openjdk8-alpine
restart: always
depends_on:
- test-db
networks:
- test-multihost
deploy:
replicas: 1
placement:
constraints:
- node.labels.nodename == main
test-db:
build: ./host-main/test-db
image: test-db:openjdk8-alpine
restart: always
depends_on:
- test-postgres
networks:
- test-multihost
deploy:
replicas: 1
placement:
constraints:
- node.labels.nodename == main
test-postgres:
build: ./host-db/test-postgres
image: test-postgres:postgres-12.1-alpine
restart: always
networks:
- test-multihost
deploy:
replicas: 1
placement:
constraints:
- node.labels.nodename == db
networks:
test-multihost:
external: true
我手动创建了覆盖网络: docker network create -d overlay --attachable test-multihost