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 的转发有局限性,比如每增加一个服务就需要配置一条内容,另外后端的服务如果是动态来提供,就不能采用这种方案来配置了.实际上在实现微服务架构时,服务名与服务实例地 ...
随机推荐
- 算法-KMP
KMP算法的作用在于在一个主串中查找一个主串. 传统查找子串的方法是一个字符一个字符的比较,代码如下: public static int notKMP(String main,String sub) ...
- 删除或修改本地Git保存的账号密码
win10 系统下进入 控制面板 > 用户帐户 > 管理你的凭据 选择 [Windows 凭据] git 保存的用户信息在普通凭据列表里 >>编辑>>>完成
- java核心技术笔记
1.类和对象 第四章:面向对象 日历的作用是提供某个时间点的信息 查询设置信息:GregorianCalendar now = new GregorianCalendar() int month = ...
- hive reduce 阶段GC Exception
某个reduce中的value堆积的对象过多,导致jvm频繁GC. 解决办法: 1. 增加reduce个数,set mapred.reduce.tasks=300,. 2. 在hive-site.xm ...
- LPVOID 没有类型的指针
可以将LPVOID类型的变量赋值给任意类型的指针,比如在参数传递时就可以把任意类型传递给一个LPVOID类型为参数的方法,然后在方法内再将这个“任意类型”从传递时的“LPVOID类型”转换回来. 示例 ...
- 关于Vue懒加载问题
有关Vue懒加载其实并不是想象的那么难和复杂: 首先引入 import VueLazyLoad from 'vue-lazyload'; 其次是使用 Vue.use(VueLazyLoad,{ er ...
- FTPClient工具类
package com.vcredit.ddcash.server.commons.net; import com.vcredit.ddcash.server.commons.model.FtpPar ...
- 洛谷P3369 【模板】普通平衡树
题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入x数 删除x数(若有多个相同的数,因只删除一个) 查询x数的排名(排名定义为比当前数小的数的个数+1.若有多 ...
- Windows 10 Creators Update [ISO官方镜像][15063][1703][x64][x86][创意者更新正式版]
请把下载地址手动复制到迅雷里面去,谢谢! [64 位简体中文专业/家庭版] 文件名:cn_windows_10_multiple_editions_version_1703_updated_march ...
- CentOS中service命令与/etc/init.d的关系以及centos7的变化
缘由 由于个人经常在ubuntu和centos 系统中切换,习惯了以前的 ubuntu中 通过 /etc/init.d/xxx 进行软件服务控制.后来发现centos7中换了服务的控制方式:servi ...