Docker Swarm java 服务集群
Docker Swarm java 服务集群
环境1:
- 系统:Linux Centos 7.4 x64
- 内核:Linux docker 3.10.0-693.2.2.el7.x86_64
- Docker 版本:18.09.1
- jdk 版本:1.8
- 主机数量:1台
- 主机地址:192.168.1.81
环境2:
- 已搭建 Docker Swarm 管理
- 已搭建 Docker 私有仓库
- 已搭建 NFS 存储
目录结构
├── java
│ ├── apiclient_cert.p12(可忽略)
│ ├── Dockerfile
│ ├── jdk-8u181-linux-x64.tar.gz
│ ├── rongyunKEY.txt(可忽略)
│ ├── start.sh(可忽略)
│ ├── TimeStatistics.txt(可忽略)
│ ├── zhibof330e2e4367.p12(可忽略)
│ └── zkhz_springboot-0.0.1-SNAPSHOT.jar(java服务程序)
├── service_java.yml
下载
- jdk压缩包
- 下载地址:https://pan.baidu.com/s/19U8gcJJwDeFvRltCxjAw1A
- 密码:ff2c
1、创建dockerfile
FROM centos:6
MAINTAINER xiangsikai
ENV LANG en_US.UTF-8
ENV TZ=Asia/Shanghai
RUN yum -y install sudo
ADD jdk-8u181-linux-x64.tar.gz /usr/local/
ENV JAVA_HOME /usr/local/jdk1.8.0_181
ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
RUN sudo mkdir -p /usr/local/java_zkhz/ && \
sudo mkdir -p /usr/java_zkhz/Certificate && \
sudo mkdir -p /var/log/java/
COPY apiclient_cert.p12 zhibof330e2e4367.p12 /usr/java_zkhz/Certificate/
COPY rongyunKEY.txt TimeStatistics.txt start.sh /usr/local/java_zkhz/
COPY zkhz_springboot-0.0.1-SNAPSHOT.jar /usr/local/java_zkhz/
RUN sudo chmod 755 /usr/java_zkhz/Certificate/apiclient_cert.p12 \
/usr/java_zkhz/Certificate/zhibof330e2e4367.p12 \
/usr/local/java_zkhz/start.sh
CMD ["java","-jar","/usr/local/java_zkhz/zkhz_springboot-0.0.1-SNAPSHOT.jar"]
EXPOSE 8080
# 指定系统镜像版本
FROM centos:6
# 指定管理员名称
MAINTAINER xiangsikai
# 添加变量,指定中文编码
ENV LANG en_US.UTF-8
# 添加变量,同步系统时间
ENV TZ=Asia/Shanghai
# 添加命令
RUN yum -y install sudo
# 添加文件
ADD jdk-8u181-linux-x64.tar.gz /usr/local/
# 添加变量,指定jdk
ENV JAVA_HOME /usr/local/jdk1.8.0_181
# 添加变量,指定jdk
ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 添加变量,指定jdk
ENV PATH $PATH:$JAVA_HOME/bin
# 添加命令
RUN sudo mkdir -p /usr/local/java_zkhz/ && \
sudo mkdir -p /usr/java_zkhz/Certificate && \
sudo mkdir -p /var/log/java/
# 添加文件
COPY apiclient_cert.p12 zhibof330e2e4367.p12 /usr/java_zkhz/Certificate/
# 添加文件
COPY rongyunKEY.txt TimeStatistics.txt start.sh /usr/local/java_zkhz/
# 添加文件
COPY zkhz_springboot-0.0.1-SNAPSHOT.jar /usr/local/java_zkhz/
# 添加命令
RUN sudo chmod 755 /usr/java_zkhz/Certificate/apiclient_cert.p12 \
/usr/java_zkhz/Certificate/zhibof330e2e4367.p12 \
/usr/local/java_zkhz/start.sh
# 启动命令
CMD ["java","-jar","/usr/local/java_zkhz/zkhz_springboot-0.0.1-SNAPSHOT.jar"]
# 开放端口
EXPOSE 8080
文件注释
2、创建镜像(redis目录下)
docker build -t 192.168.1.81:5000/java:v1 .
3、上传镜像
docker push 192.168.1.81:5000/java:v1
4、创建 service_java.yml
version: '3.7'
services: java:
image: 192.168.1.81:5000/java:v1
ports:
- 8888:8080
networks:
- networkce
deploy:
mode: replicated
replicas: 2
update_config:
parallelism: 1
delay: 60s
failure_action: rollback
order: start-first
rollback_config:
parallelism: 1
delay: 60s
failure_action: rollback
order: start-first
volumes:
- type: volume
source: nfs-java_log
target: /var/log/java
volume:
nocopy: true
#depends_on:
# - redis networks:
networkce:
driver: overlay volumes:
nfs-java_log:
driver: local
driver_opts:
type: "nfs"
o: "addr=192.168.1.81,soft,timeo=180,bg,tcp,rw"
device: "192.168.1.81:/docker/service/zs/java/log"
# 指定版本
version: '3.7'
# 服务
services: # 指定服务名
java:
# 指定使用镜像
image: 192.168.1.81:5000/java:v1
# 指定开放端口
ports:
- 8888:8080
# 指定网络
networks:
- networkce
# 管理容器
deploy:
# 设置副本模式
mode: replicated
# 副本数
replicas: 2
# 更新配置
update_config:
# 每次更新数量
parallelism: 1
# 每次更新时间
delay: 60s
# 更新失败设置,rollback回滚
failure_action: rollback
# 更新状态,start-firest 更新同时叠加旧版本,之后删除
order: start-first
# 回滚配置
rollback_config:
# 每次回滚数量
parallelism: 1
# 每次回滚时间
delay: 60s
# 回滚失败设置,rollback回滚
failure_action: rollback
# 回滚状态,start-firest 回滚同时叠加旧版本,之后删除
order: start-first
# 配置持久化数据
volumes:
# 数据类型
- type: volume
# 设置名称
source: nfs-java_log
# 挂载容器路径
target: /var/log/java
# 默认
volume:
nocopy: true
#depends_on:
# - redis # 网络
networks:
# 添加网络名称
networkce:
driver: overlay # 数据持久化
volumes:
# 数据名称
nfs-java_log:
driver: local
driver_opts:
# 类型
type: "nfs"
# 官方默认配置
o: "addr=192.168.1.81,soft,timeo=180,bg,tcp,rw"
device: "192.168.1.81:/docker/service/zs/java/log"
文件注释
5、创建服务
docker stack deploy -c service_java.yml java
Docker Swarm java 服务集群的更多相关文章
- docker --swarm创建一个集群
如果搭建错误可以强制脱离集群网络: docker swarm leave --force 初始化集群网络管理节点: docker swarm init --advertise-addr 10.101. ...
- 开发的服务集群部署方案,以etcd为基础(java)
当前有很多服务集群部署,但是对于我们自己开发的服务系统怎么样能够解决部署问题,对大家很麻烦和笨重. 首先,我想说对于我们国内,小公司小系统比较多.大型系统毕竟少数,向阿里云看齐的不多.其实所谓的需要集 ...
- 庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群
庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群 一.简介 前面的两篇文章,我们已经介绍了Net Core项目基于Docker容器部署在Linux服 ...
- Docker实战之Consul集群
前言 最近参加了几场 Java 面试,发现大多数的微服务实践还是 Eureka 偏多,鉴于笔者的单位选型 Consul,这里对 Consul 做简单总结. 该篇是 Docker 实战系列的第三篇.传送 ...
- Docker 部署 RocketMQ Dledger 集群模式( 版本v4.7.0)
文章转载自:http://www.mydlq.club/article/97/ 系统环境: 系统版本:CentOS 7.8 RocketMQ 版本:4.7.0 Docker 版本:19.03.13 一 ...
- Docker 容器部署 Consul 集群
Docker 容器部署 Consul 集群 一.docker安装与启动1.1安装docker[root@localhost /]# yum -y install docker-io 1.2更改配置文件 ...
- 使用docker安装部署Spark集群来训练CNN(含Python实例)
使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...
- 轻松搭建docker应用的mesos集群
7条命令在docker中部署Mesos集群 所有使用的Docker容器构建文件是有也.您可以在本地构建每个容器或只使用位于Docker Hub预构建的容器.下面的命令会自动下载所需的预建的容器为您服务 ...
- Spring Cloud(Dalston.SR5)--Zuul 网关-微服务集群
通过 url 映射的方式来实现 zuul 的转发有局限性,比如每增加一个服务就需要配置一条内容,另外后端的服务如果是动态来提供,就不能采用这种方案来配置了.实际上在实现微服务架构时,服务名与服务实例地 ...
随机推荐
- MySQL成勒索新目标,数据服务基线安全问题迫在眉睫
版权声明:本文由云鼎实验室原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/519598001488335177 来源:腾云阁 ...
- MSF实现RID劫持和MSF实现PsExec执行命令
msf实现rid劫持 rid劫持原理: 每个帐户都有一个指定的RID来标识它.与域控制器不同,Windows工作站和服务器会将大部分数据存储在HKLM\SAM\SAM\Domains\Account\ ...
- hibernate06--参数的绑定
创建Dept实体类 以及 对应的 Dept.hbm.xml文件 /** * @author 小豆腐 * *部门的实体类 */ public class Dept { private Integer d ...
- ios学习--iphone 实现下拉菜单
原文地址:ios学习--iphone 实现下拉菜单作者:sdglyuan00 #import @interface DropDown1 : UIView <</span>UITabl ...
- P1_jemeter安装--jdk安装
学习的python,需要下载jemter做接口测试. 一..jMeter介绍 Apache组织开发的基于JAVA压力测试工具 100%纯JAVA开发,完全可移植性 可用于测试静态和动态资源 多协议-- ...
- 2019年3月8日A股百点暴跌行情思考
本人操作: [海通证券]:早盘挂单并撤单,盘中高位卖出,尾盘低位接回. 总结 - 正确:持股数量不变,成本降低. [信雅达]:早盘低开加仓,盘中高位卖出,跌后接回,尾盘跌停. 总结 - 正确:加仓, ...
- C和C指针小记(十七)-使用结构和指针-链表
1.链表 链表(linked list)即使是一些包含数据的独立数据结构的(Node)集合. 链表中的每个节点通过链或指针链接在一起. 程序通过指针访问链表中的节点. 节点通常是动态分配的,但也有由节 ...
- Eclipse 02: 安装spring tool suite插件
在实际项目开发时,如果我们创建了一个spring文件,其实也就是个xml文件,如果没有集成spring的开发工具,创建的就是一个单纯的xml文件.安装spring插件以后创建spring配置文件会方便 ...
- 使用PyQT开发图形界面程序
环境 python:v3.3 PyQT:v4.10.4 注意问题: 在主文件前面加入,否则当前的工程模块无法找到 import sys sys.path.append(".") 入 ...
- LeetCode 520 Detect Capital 解题报告
题目要求 Given a word, you need to judge whether the usage of capitals in it is right or not. We define ...