#/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镜像打成文件的更多相关文章

  1. Docker镜像构建文件Dockerfile及相关命令介绍

    使用docker build命令或使用Docker Hub的自动构建功能构建Docker镜像时,都需要一个Dockerfile文件.Dockerfile文件是一个由一系列构建指令组成的文本文件,doc ...

  2. docker镜像中文件丢失

    背景介绍 笔者创建了一个镜像,然后在不同的主机上启动,发现有的能启动,有的却不行,报错信息为找不到文件. 犹记得当初有人介绍,只要docker镜像做好了,拿到任何地方都可以用,此处好像不成呢,好诡异的 ...

  3. docker镜像、容器

    第一部分:Docker镜像的基本知识 1.1 什么是Docker镜像 从整体的角度来讲,一个完整的Docker镜像可以支撑一个Docker容器的运行,在 Docker容器运行过程中主要提供文件系统视角 ...

  4. Docker 镜像之进阶篇

    笔者在<Docker 基础 : 镜像>一文中介绍了 docker 镜像的基本用法,本文我们来介绍 docker 镜像背后的技术原理. 什么是 docker 镜像 docker 镜像是一个只 ...

  5. Docker镜像细节

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 回顾前面: 为什么需要Docker? Docker入 ...

  6. 深入分析 Docker 镜像原理

    摘要:近日, DaoCloud 软件工程师孙宏亮在 CSDN Container 微信群为大家带来了 Docker 镜像原理的深度分享,本次分享的重点是 Docker 镜像,分享的内容主要包含两个部分 ...

  7. 从零开始构建一个centos+jdk7+tomcat7的docker镜像文件

    从零开始构建一个centos+jdk7+tomcat7的镜像文件 centos7系统下docker运行环境的搭建 准备centos基础镜像 docker pull centos 或者直接下载我准备好的 ...

  8. 如何将docker镜像文件上传至Docker Hub

    一.Docker Hub中新建存储库 注册,登录Docker Hub之后,点击右上角Create Repository,创建存储库,如下图所示: 取个名字,我这里取名为lihui_demo.并且可以选 ...

  9. Docker镜像保存为文件及从文件导入镜像的方法

    参考 1.概述 我们制作好镜像后,有时需要将镜像复制到另一台服务器使用. 能达到以上目的有两种方式,一种是上传镜像到仓库中(本地或公共仓库),但是另一台服务器很肯能只是与当前服务器局域网想通而没有公网 ...

随机推荐

  1. 【git】gitignore

    gitignore git专门有个文件用来管理那些不被纳入版本库的文件,这个文件是 [.gitignore],所有不被包含的都能放进去,但这个是有前提的. 前提 前提是文件如果没被git客户端trac ...

  2. Xcode调试与其他

    在项目中设置main接收的参数,模拟终端输入 Product->Scheme->Edit Scheme->Run->Arguments 例: 相当于在终端执行命令:./ac-t ...

  3. swift - 解析三方 - ObjectMapper

    // // JYQueryBespeakModel.swift // rtb // // Created by chen on 2018/3/30 // 查询预约信息 import UIKit imp ...

  4. widdow.locationg.可跟的参数,获取url不同的地址

  5. spirng中的asm与jdk不兼容<已解决>

    转载自:spirng中的asm与jdk不兼容<已解决> 前言 不知道前面对eclipse做了什么,使用maven来创建项目,然后转成web,启动的时候一直报错.我弄了好久,还是无法解决,先 ...

  6. Exploring the world of Android :: Part 1

    This blog is accidentally find out, it tells the story of one of our friends about the exploration o ...

  7. UI移动设备屏幕知识

    今天同学给我了一个设计UI的软件,其实我是一头雾水的,有点孤陋寡闻了,设计UI还有这样的软件.百度了下,看见这篇文章还是很有收获的,原来UI还是一门如此高深的学问.把这篇文章和大家一起分享吧,希望你们 ...

  8. jQuery封装和优化

    封装和优化插件 --封装插件 (function($){ //自定义插件代码 })(jQuery) --------------- (function($){ $.fn.extend({ //函数列表 ...

  9. maven项目打包发布到私有仓库

    在项目开发中通常会引用其他的jar,怎样把自己的项目做为一个jar包的形式发布到私服仓库中,主要有以下三个步骤 (怎样配置maven私服仓库,就不再这里说明了,可以参考以前的文章)1.在maven的s ...

  10. IDEA 的基本介绍

    1.工具界面 (1)工程下的 src 类似于 Eclipse 下的 src 目录, 用于存放代码. (2)工程下的.idea 和 project01.iml 文件都是 IDEA 工程特有的.类似于 E ...