解决基于Docker部署PowerJob跨服务器的网络连接问题

方式一、主从服务器分别配置

前提:docker、docker-compose


主服务器的 docker-compose.yml 的配置
在这里插入图片描述

从服务器的 docker-compose.yml 的配置
在这里插入图片描述

解决思路:使用 host 网络模式,而且给powerjob指定网络,避免它自动获取,否则将会失败

– 缺点就是每个服务器都要去配置

方式二、基于docker swarm 部署

前提:docker、docker-compose、docker-swarm

解决思路:使用 docker swarm 保证跨服务器后容器间相互访问

什么?没有用过 docker swarm?那自己自行百度学习去,学习完再回来接下去看。还有,docker compose 没有用过的话也要先看看


创建docker-compose的配置文件
在这里插入图片描述
具体内容

version: '3' services: server: image: powerjob/powerjob-server:latest hostname: powerjob-server restart: always environment: PARAMS: "--oms.mongodb.enable=false --spring.datasource.core.jdbc-url=jdbc:mysql://powerjob-mysql:3306/powerjob-daily?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai" JVMOPTIONS: "-Dpowerjob.network.local.address=powerjob-server" ports: - "7700:7700" - "10086:10086" - "10010:10010" networks: - overlay volumes: - ./powerjob-data/powerjob-server:/root/powerjob/server/ deploy: placement: constraints: [node.role == manager] worker: image: powerjob/powerjob-worker-samples:latest hostname: powerjob-worker restart: always depends_on: - server environment: PARAMS: "--powerjob.worker.server-address=powerjob-server:7700" JVMOPTIONS: "-Dpowerjob.network.local.address=powerjob-worker" ports: - "8081:8081" - "27777:27777" networks: - overlay volumes: - ./powerjob-data/powerjob-worker-samples:/root/powerjob/worker deploy: placement: constraints: [node.role == worker] networks: overlay: 

然后启动

# 启动服务, [powerjob]是服务的名称 docker stack deploy -c docker-compose.yml powerjob # 移除服务,[powerjob]是服务的名称 docker stack rm powerjob # 查看启动日志 serviceName= [服务的名称]_[docker-compose容器名] docker service ps --no-trunc [serviceName] 例子:docker service ps --no-trunc powerjob_server 

可能碰到一些问题

  1. 找不到数据卷
    解决方法:可以安装使用 NFS 服务,解决跨服务器的文件访问问题
  2. 自建的镜像在swarm的worker下无法拉取
    解决方法:
    方法一、只使用jdk公共镜像做基础镜像直接运行worker的jar包
    方法二、在DockerHub仓库注册自己的账号,推送自建的镜像到仓库。但这个有个缺陷就是需要能够访问外网,如果不能访问外网,也可以自己搭建一个私有hub仓库

原文链接:https://blog.csdn.net/LZY_1993/article/details/129860974?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171836884016800182130287%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171836884016800182130287&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-3-129860974-null-null.nonecase&utm_term=docker%E9%83%A8%E7%BD%B2

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享