将批量指定的docker镜像打成文件
#/bin/bash
tag=
img1=hub.chinacloud.com.cn/onex.dev/one-task-scheduler:$tag
img2=hub.chinacloud.com.cn/onex.dev/one-route:$tag
img3=hub.chinacloud.com.cn/onex.dev/one-infrastructure-api:$tag
img4=hub.chinacloud.com.cn/onex.dev/one-logging-api:$tag
img5=hub.chinacloud.com.cn/onex.dev/one-config:pro-$tag
img6=hub.chinacloud.com.cn/onex.dev/keycloak:3.4..Final.$tag
img7=hub.chinacloud.com.cn/onex.dev/one-registry:$tag
img8=hub.chinacloud.com.cn/fast-wh.dev/whitehole-business:$tag
img9=hub.chinacloud.com.cn/fast-wh.dev/whitehole-event:$tag
img10=hub.chinacloud.com.cn/fast-wh.dev/whitehole-flow:$tag
img11=hub.chinacloud.com.cn/fast-pulsar.dev/westoneui-all-in-one:$tag
img12=hub.chinacloud.com.cn/fast-pulsar.dev/pulsar-ui:$tag
img13=hub.chinacloud.com.cn/fast-pulsar.dev/pulsar:$tag
img14=hub.chinacloud.com.cn/fast-pulsar.dev/pulsar-sidecar:$tag images=($img1 $img2 $img3 $img4 $img5 $img6 $img7 $img8 $img9 $img10 $img11 $img12 $img13 $img14) for each in ${images[@]}; do
docker pull $each
array=(${each//\// })
for var in ${array[@]}; do
if [[ $var =~ ":" ]]; then
tar=`echo $var | cut -d ':' -f `
docker save -o ${tar}.tar $each
tar cjvf ${tar}.tbz ${tar}.tar
rm -rf ${tar}.tar
fi
done
done
1、(${each//\// }) 将字符串按/ 进行拆分,写成\/主要是是/的转义字符,按什么拆分可以写成 (${each//分割符/}),比如下面按 "-"进行拆分
a="one-two-three-four"
#要将$a分割开,可以这样:"
arr=(${a//-/ })
for s in ${arr[@]}
do
echo "$s"
done
执行后显示:
one
two
three
four
2、如果匹配冒号
if [[ $var =~ ":" ]];
上面这句的意思是如果$var表示的字符串中匹配 “:”。
比如面的例子
$ cat .sh
#!/bin/bash read -p "Please type :" x
if [[ $x =~ "[0-9]" ]];then
echo "yes"
else
echo "no"
fi
$ ./.sh
Please type :
yes
$ ./.sh
Please type :f
no
3、cut用法
cut语法 [root@www ~]# cut -d'分隔字符' -f fields <==用于有特定分隔字符
[root@www ~]# cut -c 字符区间 <==用于排列整齐的信息
选项与参数:
-d :后面接分隔字符。与 -f 一起使用;
-f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;
-c :以字符 (characters) 的单位取出固定字符区间;
PATH 变量如下 [root@www ~]# echo $PATH
/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games
# | | | | | |
将 PATH 变量取出,我要找出第五个路径。 #echo $PATH | cut -d ':' -f
/usr/local/bin
将 PATH 变量取出,我要找出第三和第五个路径。 #echo $PATH | cut -d ':' -f ,
/sbin:/usr/local/bin
将 PATH 变量取出,我要找出第三到最后一个路径。 echo $PATH | cut -d ':' -f -
/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games
将 PATH 变量取出,我要找出第一到第三个路径。 #echo $PATH | cut -d ':' -f -
/bin:/usr/bin:/sbin:
将 PATH 变量取出,我要找出第一到第三,还有第五个路径。 echo $PATH | cut -d ':' -f -,
/bin:/usr/bin:/sbin:/usr/local/bin
实用例子:只显示/etc/passwd的用户和shell #cat /etc/passwd | cut -d ':' -f ,
root:/bin/bash
daemon:/bin/sh
bin:/bin/sh
将批量指定的docker镜像打成文件的更多相关文章
- Docker镜像构建文件Dockerfile及相关命令介绍
使用docker build命令或使用Docker Hub的自动构建功能构建Docker镜像时,都需要一个Dockerfile文件.Dockerfile文件是一个由一系列构建指令组成的文本文件,doc ...
- docker镜像中文件丢失
背景介绍 笔者创建了一个镜像,然后在不同的主机上启动,发现有的能启动,有的却不行,报错信息为找不到文件. 犹记得当初有人介绍,只要docker镜像做好了,拿到任何地方都可以用,此处好像不成呢,好诡异的 ...
- docker镜像、容器
第一部分:Docker镜像的基本知识 1.1 什么是Docker镜像 从整体的角度来讲,一个完整的Docker镜像可以支撑一个Docker容器的运行,在 Docker容器运行过程中主要提供文件系统视角 ...
- Docker 镜像之进阶篇
笔者在<Docker 基础 : 镜像>一文中介绍了 docker 镜像的基本用法,本文我们来介绍 docker 镜像背后的技术原理. 什么是 docker 镜像 docker 镜像是一个只 ...
- Docker镜像细节
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 回顾前面: 为什么需要Docker? Docker入 ...
- 深入分析 Docker 镜像原理
摘要:近日, DaoCloud 软件工程师孙宏亮在 CSDN Container 微信群为大家带来了 Docker 镜像原理的深度分享,本次分享的重点是 Docker 镜像,分享的内容主要包含两个部分 ...
- 从零开始构建一个centos+jdk7+tomcat7的docker镜像文件
从零开始构建一个centos+jdk7+tomcat7的镜像文件 centos7系统下docker运行环境的搭建 准备centos基础镜像 docker pull centos 或者直接下载我准备好的 ...
- 如何将docker镜像文件上传至Docker Hub
一.Docker Hub中新建存储库 注册,登录Docker Hub之后,点击右上角Create Repository,创建存储库,如下图所示: 取个名字,我这里取名为lihui_demo.并且可以选 ...
- Docker镜像保存为文件及从文件导入镜像的方法
参考 1.概述 我们制作好镜像后,有时需要将镜像复制到另一台服务器使用. 能达到以上目的有两种方式,一种是上传镜像到仓库中(本地或公共仓库),但是另一台服务器很肯能只是与当前服务器局域网想通而没有公网 ...
随机推荐
- c++笔试题贪吃蛇问题
贪吃蛇 现在有一个N*M(N,M=100)的方形矩形,在这个矩形的每一个方格上都放有一个随机值,一条可爱的小蛇从矩形的 左上角开始出发,每次移动都只能移动一格,向右或向下,而每到达一格贪吃的小蛇都会吧 ...
- eclipse打war包编译文件不更新
如题.多次打包都不更新,各种clean都试了都不行.重启eclipse也不行.最后重启电脑可以了. 另外eclipse导出war包似乎存在bug,时间比系统时间超前,如下图所示.我17:19导出的包, ...
- akuna capital oa
记得截图没过的test case啊!否则连复习改bug的证据都没了啊!!! 其实也不一定非得要拿面试来测试,做做lc的contest,看看自己哪里不会,也是一样的效果. 注意是单选题还是多选题 has ...
- springmvc中的拦截器interceptor用法
1.配置拦截器 在springMVC.xml配置文件增加: 1 <mvc:interceptors> 2 <!-- 日志拦截器 --> 3 <mvc:intercepto ...
- supervisor安装、使用详解
supervisor是用python写的一个进程管理工具,用来启动,重启,关闭进程. 1 supervisor的安装 pip install supervisor 2 supervisor的配置文件( ...
- sqlite c#
https://www.cnblogs.com/icebutterfly/p/7850689.html https://www.cnblogs.com/sdadx/p/7127098.html
- vss登录invalid handle问题的解决办法
VSS登录出现“invalid handle” 原因:网络验证. 解决方法: 1.打开控制面板:选择“用户帐户和家庭安全” 2.选择凭据管理器: 3.添加Windows 凭据 这一步特别重要: (1) ...
- mysql-mysqldump命令导出多个数据库结构(实战)
环境:windows server 2012 打开CMD命令行模式, >cd c:\Program Files\Mysql\Mysql 5.7.1\bin c:\Program Files\My ...
- ubuntu16.04安装wps
下载: 我的电脑是64位的,所以选择64bit的deb包进行下载 1.下载地址:http://community.wps.cn/download/(去WPS官网下载) 安装: 2.执行安装命令:sud ...
- 如何使用queue_delayed_work函数
本文转自如何使用queue_delayed_work函数 1. delayed_workqueue主要用在需要延迟处理任务的驱动中,这些驱动的特性主要是不能使用中断. delayed_workqueu ...