专栏首页首富手记通过docker image 获取到 dockerfile
原创

通过docker image 获取到 dockerfile

docker history --format {{.CreatedBy}} --no-trunc=true $DockerImage |sed "s/\/bin\/sh\ -c\ \#(nop)\ //g"|sed "s/\/bin\/sh\ -c/RUN/g" | tac

--format {{.CeratedBy}} 只输出 CREATE BY 这一列

--no-trunc=true 完成输出命令

sed "s/\/bin\/sh\ -c\ \#(nop)\ //g"|sed "s/\/bin\/sh\ -c/RUN/g" 替换命令执行的bash前缀

tac 由于history中的命令是层级的,越晚运行的命令越在上面,为了更方便的阅读,使用tac命令让其翻转

cat > Obtain\_dockerfile.sh <<-'EOF'

#!/bin/bash

export PATH=$PATH

if [ $# -eq 1 ];then

        docker history --format {{.CreatedBy}} --no-trunc=true $1 |sed "s/\/bin\/sh\ -c\ \#(nop)\ //g"|sed "s/\/bin\/sh\ -c/RUN/g" | tac

    else

        echo "sh Obtain\_dockerfile.sh $DOCKER\_IMAGE"

fi

EOF

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 查看docker File

    张琳兮
  • nginx反向代理

    客户端发出请求到代理服务器上,然后代理服务器帮他去后台请求资源,客户端认为代理服务器就是原始的web服务。然后由反向代理服务器去帮他请求资源。

    张琳兮
  • Rabbitmq 简单介绍,安装和go客户端使用

    消息队列(英语:Message queue)是一种进程间通信或同一进程的不同线程间的通信方式,软件的贮列用来处理一系列的输入,通常是来自用户。消息队列提供了异步...

    张琳兮
  • #!/bin/bash 与#!/bin/sh

    hive脚本如下(日表): #!/bin/bash #     /*% ******************************************...

    学到老
  • #!/bin/bash 与#!/bin/sh

    hive脚本如下(日表): #!/bin/bash #     /*% ******************************************...

    学到老
  • 使用Cocoapods制作自己的Pod库

    程序员不务正业
  • 如何向回调函数中传入其他参数

    最近写JS经常会因为向回调函数中传参而头疼,今天总结一下向回调函数中传参的方法,以后的应用中就不用在到处去找了。

    大江小浪
  • WebSphere8.5.5.2修改默认Java版本为JDK7

    在WebSphere8.5.5.2中默认使用的是JDK6,如果想升级成JDK7,可以使用下面方法。

    kongxx
  • 置信度&置信区间,这篇讲解我给100分!

    今天这篇聊聊统计学里面的置信度和置信区间,好像没怎写过统计学的东西,这篇试着写一写。

    double
  • 聊聊置信度与置信区间

    今天这篇聊聊统计学里面的置信度和置信区间,好像没怎写过统计学的东西,这篇试着写一写。

    张俊红

扫码关注云+社区

领取腾讯云代金券