#/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. mysql系列(2)之 DDL语句

    1.创建数据库test1:create database test1; 2.查询系统中都存在哪些数据库:show databases; 3.选择数据库:use test1; 4.查看数据库中所有的表: ...

  2. 关于viewport我自己的理解

    其实即使不在html中添加meta viewport标签,每个移动端浏览器都会有一个默认的viewport,只是这个viewport的宽度是980,然后做1:3或者1:2的自动缩放.所以当不在html ...

  3. Linux下Python2升级Python3

    Linux下Python2的升级方法: 一.下载Python3安装包: 1.在线下载 wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2 ...

  4. golang基础学习

    一.输出hello,world程序 package main; import "fmt"; func main() { fmt.Printf("hello,world&q ...

  5. webstorm 打包angular Module build failed: Error: No PostCSS Config found

    angular创建项目后,在webstorm中启动时,报出如题错误,奇怪的是我从命令行启动(ng server)是没有问题的,多方寻求无果,在网上看到过说要加一个配置文件,我不信.我觉得是我配置哪里有 ...

  6. vuex写法

    <template> <div class="hello"> <p>{{count}}</p> <p> <butt ...

  7. table-layout 显示规则以及其他一些零碎的东西

    首先对中文显示的不够好 对中文失效  auto是表格的宽和高都会随着内容增多而改变  而fixed只会增加表格的高度   宽度不会发生改变  table中的td的宽,高会根据内容的多少而变化: fix ...

  8. Linux执行命令时遇到的些问题

    1.执行lsb_release -a,提示 未安装lsb_release导致的,执行一下yum install redhat-lsb -y,问题解决 2.配置tomcat站点后重启tomcat,提示找 ...

  9. Oracle性能优化1-总体思路和误区

    最近在看梁敬彬老师关于Oracle性能优化的一些案例,在这里做一些简单的总结 1.COUNT(*)与COUNT(列)哪个更快 drop table t purge; create table t as ...

  10. Liunx cp

    功能: 复制文件或目录 使用权限:所有使用者说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中.若同 ...