zoukankan      html  css  js  c++  java
  • 如何从Docker镜像中导出文件,再次解构Image

    我最新最全的文章都在 南瓜慢说 www.pkslow.com ,欢迎大家来喝茶!

    简介

    有时我们需要从别人的Docker镜像中导出一些有用的文件,以打包进我们自己的镜像,以满足一些安全性、可用性等要求。本文主要介绍两种方法。

    第一种方法:从运行的容器中复制

    先把镜像跑起来,然后从运行起来的容器中复制文件出来,复制命令如下:

    # 从容器复制文件或目录到宿主机器
    docker cp 6619ff360cce:/opt/h2-data/pkslow ./
    docker cp 6619ff360cce:/opt/h2-data/pkslow/pkslow.txt ./
    

    更多命令可参考:Docker和Kubernetes常用命令(持续整理)

    第二种方法:解压镜像tar文件

    首先,第一种方法并不是万能的,因为有些镜像过于简单,少了许多基础命令,以至于无法复制文件,也无法进入shell环境。其次,要运行起来再操作,也有点占用资源,比较麻烦。

    ghcr.io/kedacore/keda:2.2.0为例演示如下从该镜像中提取文件:

    (1)将镜像保存为tar文件

    $ docker save -o keda.tar ghcr.io/kedacore/keda:2.2.0
    

    (2)解压tar文件

    $ tar xvf keda.tar 
    x 42b88f0429143256463a478dda36b5e6d63f6dc43e033c3415414149c8c3257b.json
    x 82a2e23fb9f1f5ac86b6c60196bff58e163601e5f37f1bc2bb1bd1781e8f6906/
    x 82a2e23fb9f1f5ac86b6c60196bff58e163601e5f37f1bc2bb1bd1781e8f6906/VERSION
    x 82a2e23fb9f1f5ac86b6c60196bff58e163601e5f37f1bc2bb1bd1781e8f6906/json
    x 82a2e23fb9f1f5ac86b6c60196bff58e163601e5f37f1bc2bb1bd1781e8f6906/layer.tar
    x ec12616cdd736751f41ba8d32cb9e9553ec33fc9d0bd1df92d4d8995b3dbc8ea/
    x ec12616cdd736751f41ba8d32cb9e9553ec33fc9d0bd1df92d4d8995b3dbc8ea/VERSION
    x ec12616cdd736751f41ba8d32cb9e9553ec33fc9d0bd1df92d4d8995b3dbc8ea/json
    x ec12616cdd736751f41ba8d32cb9e9553ec33fc9d0bd1df92d4d8995b3dbc8ea/layer.tar
    x manifest.json
    x repositories
    

    可以看到每个分层的信息,我们查看manifest.json可以看到具体哪个layer是最新的。

    (3)找其中一个layer再解压

    $ tar xvf ec12616cdd736751f41ba8d32cb9e9553ec33fc9d0bd1df92d4d8995b3dbc8ea/layer.tar
    x keda
    

    这样,我们就获取到了keda这个可执行文件。每层的打包内容不一样,需要看所需的文件在哪个Layer。


    欢迎关注微信公众号<南瓜慢说>,将持续为你更新...

    多读书,多分享;多写作,多整理。

  • 相关阅读:
    笨方法学python中执行argv提示ValueError: not enough values to unpack (expected 4, got 1)
    VMware workstation安装
    Redis bigkey分析
    MySQL drop table 影响及过程
    MySQL 大表硬连接删除
    ES elasticsearch 各种查询
    ES elasticsearch 各种聚合
    ES elasticsearch 聚合统计
    ES elasticsearch 实现 count单字段,分组取前多少位,以地理位置中心进行统计
    MySQL行溢出、varchar最多能存多少字符
  • 原文地址:https://www.cnblogs.com/larrydpk/p/14960659.html
Copyright © 2011-2022 走看看