Docker Swarm java 服务集群

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 服务集群 的全部内容, 来源链接: utcz.com/z/390804.html

回到顶部