docker打包镜像,上传镜像仓库,使用rancher发布

步骤一、首先将项目打包放在指定目录下

项目jar包名称为  micro-app.jar

步骤二、将jar包名称改为指定名称,执行命令   

docker build -t micro-gateway:v1.4 .

意义:执行当前目录下的dockerfile文件创建镜像,镜像的标签为  micro-gateway:v1.4

dockerfile的文件内容为

FROM 你的ip:你的端口/library/jdk8:v1.0
MAINTAINER 你的标识
COPY ./restart.sh /restart.sh
COPY ./micro-app.jar /micro-app.jar
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ  /etc/localtime && echo $TZ > /etc/timezone
ENV NACOSADDRESS=""
ENV NACOSPORT=""
ENV REDISADDRESS=""
ENV REDISPORT=""
ENV MYSQLADDRESS=""
ENV MYSQLNAME=""
ENV MYSQLPASSWORD=""
EXPOSE 31006
WORKDIR /
ENTRYPOINT ["/bin/sh","/restart.sh"]

文件中的  NACOSADDRESS 等变量,对应spring boot 工程配置文件中的变量,yml配置文件的变量用${}修饰

restart.sh文件的内容如下

#!/bin/bash
# Author     : **
# Date       : **

ps -ef|grep micro-app|grep -v grep|cut -c 9-15|xargs kill -9

nohup java -Xms512m -Xmx1024m -XX:MaxPermSize=128m -Djava.net.preferIPv4Stack=true -jar micro-app.jar > log.out &

sleep 2
R=0
tail -f log.out|while read line
        do
                ###tail -f  bug, double validate ###
                b=`echo $line|grep "Tomcat initialized with port(s):"|wc -l`
                if [ $b -eq 1 ];then
                        R=1
                fi
                a=`echo $line|grep "Tomcat started on port(s):"|wc -l`
                if [ $a -lt 1 ];then
                        echo $line
                else
                        if [[ $R == 0 ]];then
                                echo $line
                        else
                                echo $line
                                ps -ef | grep ‘tail -f log.out‘ | grep -v grep | awk ‘{print $2}‘ | xargs kill -9
                        fi
                fi
        done
echo ‘tomcat start complete!!‘
exit

 步骤三、标记本地镜像,将其归入仓库

docker tag micro-gateway:v1.4 你的仓库地址:你的仓库端口/servers/micro-gateway:v1.4

步骤四、上传镜像到镜像仓库

docker push 你的仓库地址:你的仓库端口/servers/micro-gateway:v1.4

步骤五、使用rancher发布镜像,发布时指定你的变量值

原文地址:https://www.cnblogs.com/yechen2019/p/11433884.html

时间: 2024-08-29 23:51:50

docker打包镜像,上传镜像仓库,使用rancher发布的相关文章

CentOs7 docker1.9 通过SSL把镜像上传到仓库

实现在仓库主机本机上通过SSL的方式把镜像上传到本机仓库 Server端: 1.生成证书 [email protected]:~$ sudo openssl req -x509 -nodes -days 365  -subj '/CN='test.registry.com'  -newkey rsa:4096 -keyout certs/domain.key -out certs/domain.crt #把证书生成到certs目录下,生成一个test.registry.com域名证书 2.启动容

java~gradle构建公用包并上传到仓库~使用私有仓库的包

在新的项目里使用仓库的包 上一讲中我们说了java~gradle构建公用包并上传到仓库,如何发布公用的非自启动类的包到私有仓库,而这一讲我们将学习如何使用这些包,就像我们使用spring框架里的功能包一样. 参考:http://www.zhyea.com/2018/04/24/gradle-repository-username-password.html?spm=a2c40.rdc_maven_repo.0.0.12fd3054jv5EgP 公司私有的maven仓库在访问时是需要用户名密码的.

[python](Docker SDK)上传镜像到私有仓库(ssl、身份认证)

(Docker SDK)上传镜像到私有仓库(ssl.身份认证) API:https://docker-py.readthedocs.io/en/stable/ 环境:python:3.7.3 配置参数: cert = os.path.join(BASE_DIR, "utils/cert.pem") key = os.path.join(BASE_DIR, "utils/key.pem") docker_server = "xx.xx.xx.xx:5555&

docker 外部镜像 上传到本地仓库

下载外部镜像,多个节点服务器需要安装的时候再到外网下载,虽然加了加速器,修改镜像源为国内的,但是下载速度还是挺慢. 于是想我们已经安装了镜像仓库,为什么不直接将外部下载的镜像信息上传到本地仓库呢.这样只需要下载一次,然后任何需要使用的机器到本地的仓库下载安装即可. 这里我安装ELK中的L,也就是logstash,需要在每个节点服务器都安装,而这个文件就有800多M,再次下载就比较慢.于是..这样做了. 这里我的镜像仓库harbor安装在192.168.89.132上. 上传镜像的格式为 dock

docker自定义镜像上传阿里云

1.alpine制作jdk镜像 2.Alpine制作jre镜像(瘦身) 3.Docker镜像上传至阿里云 alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBox以减少系统的体积和运行时的资源消耗. 2.Alpine Linux提供了自己的包管理工具:apk(注意:ubuntu中是apt-get),我们可以通过https://pkgs.alpineli

docker 镜像 上传到docker hub

需要按照如下步骤处理: 我一直没有第三步,一直没有成功,直到尝试了一次docker tag ,上传docker hub就没有出现问题了. step1--找到本地镜像的ID:docker images step2--登陆Hub:docker login --username=username --password=password --email=email step3--tag:docker tag <imageID> <namespace>/<image name>:

Docker上传镜像到私有库的报错

1.查看docker的版本信息 # docker version Client:  Version:18.03.0-ce  API version:1.37  Go version:go1.9.4  Git commit:0520e24  Built:Wed Mar 21 23:09:15 2018  OS/Arch:linux/amd64  Experimental:false  Orchestrator:swarm Server:  Engine:   Version:18.03.0-ce

如何将自己的镜像上传到docker hub上面

1.首先需要拥有自己的Docker hub账号 2.使用Docker hub账号在验证本地登录#docker login输入用户名和密码 3.先docker images看看本地的镜像 #docker images 如果REPOITORY的名不是你Docker hub账号和仓库,即Docker ID/仓库名,是上传不成功的 使用docker tag 镜像ID 用户名称/镜像源名 :新的标签名(tag) 来更改 #docker tag 861661772e3e liuxianhuacn/nginx

自定义镜像上传阿里云

alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBox以减少系统的体积和运行时的资源消耗. 2.Alpine Linux提供了自己的包管理工具:apk(注意:ubuntu中是apt-get),我们可以通过https://pkgs.alpinelinux.org/packages 查询包信息 3.Alpine Docker镜像继承了Alpine Lin