docker 企业生产环境中使用的快速更新脚本

在使用业务应用中,每次docker 都需要删除镜像,重新创建镜像,步骤比较麻烦,下面把我们工作中的使用的脚本分享给大家使用:

1、首先创建快速更新脚本

#! /bin/bash

echo '-----------start-------------'
docker rm -f $1
docker rmi -f $1
#  /home/  根据实际使用路径修改
cd /home/$1
docker build -t $1 /home/$1
if [ $? -ne 0 ]; then
    echo "failed"
else
    echo "success"
      docker run --restart=always  --name $1 -v /etc/localtime:/etc/localtime -v /home/$1/conf:/conf -v /opt/logs/$1:/opt/logs/$1/ -d -p $2 $1
fi
echo '-----------end-------------'

用以上脚本在  /usr/local/sbin/下面创建一个文件名为:deploy.sh

2、创建项目地址,例如项目的运行文件要放在 /home/下面

在home下面创建一个名称为:dockertest的目录

用以下脚步创建一个Dockerfile 文件

# 指定基础镜像(必需且为第一条指令,scratch是空白镜像)
FROM openjdk:8-jre-alpine

# MAINTAINER已经过期,具体参考:https://docs.docker.com/engine/reference/builder/#label
LABEL author-name="LXF"

# 为了防止运行时用户忘记将动态文件所保存目录挂载为卷,在 Dockerfile 中,我们可以事先指定某些目录挂载为匿名卷,
# 这样在运行时如果用户不指定挂载,其应用也可以正常运行,不会向容器存储层写入大量数据。
VOLUME /opt/tmp

# 在 COPY 和 ADD 指令中选择的时候,可以遵循这样的原则,
# 所有文件复制使用 COPY 指令,仅在需要自动解压缩的场合使用 ADD 指令
# dockertest.jar文件名称根据实际情况修改
ADD dockertest.jar dockertest.jar
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone

# JVM参数可选
CMD ["java","-jar","dockertest.jar"]

# EXPOSE 指令仅仅是声明的是运行时容器提供服务的端口
# 用于帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射; 
# 1000 端口可根据实际情况调整
EXPOSE 10000

放在dockertest的目录下面

dockertest.jar 为项目打包文件,

conf里面为项目的配置文件application-prod.properties

更新项目的时候只需要把 dockertest.jar 文件更新,

然后执行   deploy.sh dockertest 1001:1001     实现自动更新操作。

控制台运行详细信息:   

dockertest 为项目名称   根据实际情况修改即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值