• 如何删除docker镜像中已配置的volume


    场景: 有个同学不知道因为啥,将容器内部的 /sys/fs/cgroup 挂载到了外面的某个目录; 但是这个目录是很有用的,不想随便被挂载,如何从image中去掉呢?

    docker没有给出一个方便的方法, https://github.com/gdraheim/docker-copyedit 给了一个办法,原理如下:

    每个image都是有一个manifest.json 文件的,相关配置信息都在这里了,但是你看不到image文件,更无从去谈修改manifest.json 文件了,所以:

    1. 先通过docker save 命令将image导出成tar文件: 
      docker save docker-registry.i.bbtfax.com/bee_centos7 -o /data1/centos7.tar
    2. 在用tar命令解压文件 
      tar xf /data1/centos7.tar -C /data1/centos7/
    3. 在解压后的文件中找到manifest.json 文件,这个文件可能不是你最终要修改的,里面的Config标识了配置文件的位置,应该就是该文件旁边的一个json文件 
    4. 修改配置文件
    5. 重新打包image 
      cd/data1/centos7/ ; tar cf ../centos7.modify.tar .
    6. 导入image 
      # docker load -i centos7.modify.tar
      The image phpor.net/bee_centos7:latest already exists, renaming the old one with ID sha256:b14fe97b3bc959677c252e74e0ae318fa26028ac78d236a0973c3e235bf7a68b to empty string
      Loaded image: phpor.net/bee_centos7:latest

    我这里因为已经存在了同名的image,所以,旧的image的名字就被抢走了,但是ID没有变,新导入的image有自己新的ID

    参考: https://github.com/gdraheim/docker-copyedit

          http://ju.outofmemory.cn/entry/363023

  • 相关阅读:
    算法之递归
    初读 c# IL中间语言
    sql语句转为Model
    WPF-悬浮窗(类似于360)
    call,apply
    作用域题目
    css BFC
    数组扁平化 flatten
    常见的异步题
    setTimeout、Promise、Async/Await 的区别
  • 原文地址:https://www.cnblogs.com/davygeek/p/11047903.html
Copyright © 2020-2023  润新知