方式一、主从服务器分别配置
前提: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
可能碰到一些问题
- 找不到数据卷
解决方法:可以安装使用 NFS 服务,解决跨服务器的文件访问问题 - 自建的镜像在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