docker image换包步骤
Docker Commit
1、在IDEA中通过maven package得到watchman-1.5.0-SNAPSHOT.jar,将其scp到baisheng1本地;
2、查看dbaservice2所在的pod
kubectl get po -owide | grep dbaservice2
结果: dbaservice-server-dbaservice2-6f4bb88df7-9p5zr 1/1 Running 0 23m 172.26.0.73 baisheng1
3、执行下面命令获取该pod的配置信息,从中找到容器ID(Container ID):是结果中"//"后面的长字符串
kubectl describe pods dbaservice-server-dbaservice2-6f4bb88df7-9p5zr
4、使用docker命令导入jar包到容器根目录(下面的长字符串是pod中的容器ID:Container ID)
docker cp watchman-1.5.0-SNAPSHOT.jar da2c9b6af26e0f25300d245261569ae64603573b0fdbcfd1cc17d14be0197615:/
5、进入该pod,先删除掉原来的watchman.jar,修改刚刚拷贝进来的watchman-1.5.0-SNAPSHOT.jar文件名为watchman.jar(因为java -jar启动命令定义的是启动watchman.jar,故要更名)
(1)进入该pod:kubectl exec -ti dbaservice-server-dbaservice2-6f4bb88df7-9p5zr -- bin/sh
(2)删除原来的jar包:rm -r watchman.jar
(3)更名:mv watchman-1.5.0-SNAPSHOT.jar watchman.jar
6、执行exit退出该pod
7、执行docker commit [container_id] [image_repo]:[image_tag],将container的修改更新到对应的image上
这里的container_id就是上面的容器ID,image_repo是本地的“transwarp/dbaservice“,image_tag是自定义的”i18n“
8、执行docker tag transwarp/dbaservice:i18n baisheng3:5000/transwarp/dbaservice:i18n (用来在远程仓库创建TAG)
9、执行docker push baisheng3:5000/transwarp/dbaservice:i18n (push到远程仓库)
10、执行kubectl set image deployment/dbaservice-server-dbaservice2 dbaservice-server-dbaservice2=baisheng3:5000/transwarp/dbaservice:i18n
就可将新的image打进该pod中,然后重启pod即可。
Dockerfile
新建一个文件夹,将需要替换的JAR包,放在此文件内
在文件内新建一个Dockerfile
vi Dockerfile根据所要替换的JAR包在image中的位置,编写Dockerfile
FROM172.16.1.99/postcommit/inceptor:master-2019-11-19-02-19-35-966260e9ad266e36df2cf968e0512f8594615072// 1. 指定从哪个镜像开始改动,这里是inceptor master的某一个postcommit buildRUN rm -f /usr/lib/inceptor/inceptor-engine*.jar /usr/lib/inceptor/lib/inceptor-core*.jar /usr/lib/inceptor/lib/inceptor-base*.jar// 2. 删除镜像内的JAR包,这一步不是必须的COPY inceptor-engine-master-SNAPSHOT.jar /usr/lib/inceptor/COPY inceptor-core-master-SNAPSHOT.jar inceptor-base-master-SNAPSHOT.jar /usr/lib/inceptor/lib/// 3. 将新JAR包(一定要在同文件夹下)复制到镜像内相应位置所有文件就位后,是这个样子
[root@baisheng3 nucleon]# pwd/home/yewu/docker/nucleon[root@baisheng3 nucleon]# ll总用量 26920-rw-r--r-- 1 root root 426 11月 19 15:13 Dockerfile-rw-r--r-- 1 root root 371264 11月 20 20:57 inceptor-base-master-SNAPSHOT.jar-rw-r--r-- 1 root root 14857951 11月 20 20:57 inceptor-core-master-SNAPSHOT.jar-rw-r--r-- 1 root root 11572363 11月 20 20:57 inceptor-engine-master-SNAPSHOT.jar在这个文件内运行docker build, 其中-t 指定image名,不写的话,后面只能用IMAGE ID(hash)做tag操作
docker build -t <image_name_and_tag> ./docker push至repository
docker push <image_name_and_tag>对于需要更新的pod,直接删除。自动重启后就会拉取最新image覆盖本地同名image
kubectl delete po $(kubectl get po | grep inceptor12 | awk'{print $1}')这句的意思是 找到所有名字带inceptor12的pod并删除
TL;DR
Dockerfile备好,文件放好,直接一次执行,全部办妥:(示例)
docker build -t baisheng3:5000/transwarp/inceptor:nucleon ./;docker push baisheng3:5000/transwarp/inceptor:nucleon;kubectl delete po $(kubectl get po | grep inceptor12 | awk'{print $1}')- 注意:build出的镜像名,和dockerfile内使用的基础镜像名(FROM xxx)不能一样,不然你会发现,跑几次就报错了(docker layer过多)
参考链接:TDH 5.0 rubik换包
https://docs.docker.com/engine/reference/commandline/tag/
docker image换包步骤的更多相关文章
- pycharm 安装第三方包步骤
pycharm 安装第三方包步骤: 完成.
- DOCKER - 容器抓包
https://help.aliyun.com/knowledge_detail/40564.html?spm=a2c4e.11153940.blogcont272172.10.b09e28a6AOd ...
- docker挂载war包到tomcat容器中的注意点和坑
刚开始用docker,难免会遇到很多坑,这里分享一下: 一 挂载最好挂载目录 我刚开始挂载war包,结果发现容器里把挂载的war包当成目录了 二 本地路径必须是绝对路径,否则不管用 三 容器中使用vi ...
- Eclipse / android studio 添加第三方jar包 步骤
eclipse 将第三方包放到libs文件夹后并没有引用. 基本步骤分为3步,具体介绍如下: 打开自己的Eclipse,在自己的Android工程上名上右键->Build Path ->C ...
- 利用docker搭建yii2 详细步骤
定位镜像 在hub.docker.com 搜索yii2,并且最后定位到 https://hub.docker.com/r/codemix/yii2-base/codemix/yii2-base 然后在 ...
- App安全(一) Android防止升级过程被劫持和换包
文/ Tamic 地址/ http://blog.csdn.net/sk719887916/article/details/52233112 前言 APP 安全一直是开发者头痛的事情,越来越多的安全漏 ...
- eclipse导出可执行jar包步骤
按步骤图文说明 第一步:选择要导出的工程,右键[export] 第二步:双击Java文件夹下的[Runnable Jar File] 第三步:该步骤分4步走 3.1 从下拉框选择该jar的入口文件,即 ...
- docker部署war包到阿里云
最近买了个阿里云服务器,配置1核2g内存,学习够了.记录下过程. 1,服务器相关,请看下图,云服务器主要配置是安全组和密钥,前者是开放端口,后者可以用于远程连接(比如我windows系统通过putty ...
- 一键部署 Docker Datacenter ---简化docker数据中心安装步骤
DDC 简介 2016年2月下旬,Docker发布了企业级容器管理和服务部署的整体解决方案平台-Docker Datacenter,简称DDC.DDC 有三个组件构成:1. Docker Univer ...
随机推荐
- AI超越人类大脑,或许是场“别有用心者”的骗局
谷歌.微软.苹果.特斯拉.百度.腾讯.阿里等互联网巨头企业,以及纳德拉.马斯克.扎克伯格.马云等互联网大佬,近年来一直都对人工智能--AI非常上心.在众多场合对AI给予了或肯定,或恐惧的评价.但无 ...
- 自动贩卖机VS无人门店:谁是真正的零售新风口?
原本在线上不断发力,让实体店几乎凋敝的电商,却忽然对线下兴趣大增.阿里疯狂入股.收购线下商超:京东要在全国范围内开设百万家便利店,仅在农村就将开设50万家--这一股浪潮,或将直接改变整个百货零售 ...
- marquee横向无缝滚动无js
<!DOCTYPE html><html><head><meta charset="utf-8"> <title>< ...
- java内存区域----运行时数据区
Java虚拟机的内存区域也叫做java运行时数据区,共分为五个部分:程序计数器,方法区,本地方法栈,虚拟机栈和堆.方法区和堆是线程之间所共有的,程序计数器,本地方法栈,虚拟机栈是线程私有的.其中虚拟机 ...
- 【Art】物理课题——虹吸
前言(无关闲话):在此之前,课题小组讨论了三.四次,得有10个小时了总共,但是具体还是在普及常识,那就在这里深入地讲一下. 进入正题—— 这就是虹吸的基本模型,再看一下百度的官方说法: “虹吸(sip ...
- jdbc对 数据库的数据进行增删改(两个类)
1.方法类 package com.com; import java.sql.Connection;import java.sql.DriverManager;import java.sql.Resu ...
- 使用R进行空间自相关检验
「全局溢出」当一个区域的特征变化影响到所有区域的结果时,就会产生全局溢出效应.这甚至适用于区域本身,因为影响可以传递到邻居并返回到自己的区域(反馈).具体来说,全球溢出效应影响到邻居.邻居到邻居.邻居 ...
- 必备技能六、Vue中实现全局方法
现实背景:很多时候我们会在全局调用一些方法. 实现方式两种:官网的实现use方法,然后你也可以用野路子直接在Vue.prototype上面定义. 先说野路子,因为其实野路子就是最根本的实现方式,官方的 ...
- ARC中__bridge, __bridge__transfer, __bridge_retained 关系
总结于 IOS Tuturial 中 ARC两章,详细在dropbox pdf 文档. Toll-Free Bridging 当你在 Objective-C 和 Core Foundation 对象之 ...
- 计算机网络原理实验_使用网络协议分析仪Wireshark
一.实验名称 使用网络协议分析仪Wireshark 二.实验目的: 1. 掌握安装和配置网络协议分析仪Wireshark的方法: 2. 熟悉使用Wireshark工具分析网络协议的基本方法,加深对协 ...