deepwzh的技术笔记
  • Golang
  • Python
  • Cpp
杂项
前端开发
  • 计算机网络
  • 操作系统
  • 数据库
云原生
Devops
AIGC
关于作者
  • Golang
  • Python
  • Cpp
杂项
前端开发
  • 计算机网络
  • 操作系统
  • 数据库
云原生
Devops
AIGC
关于作者
  • 云原生
  • Helm
  • Etcd
  • harbor
  • 学习资料
  • Fass
  • argo

    • argo
    • Argo cli 用法
  • Docker

    • Docker
    • docker 镜像打包
    • docker 镜像加速
    • 常用命令
    • 进阶 docker 资料
    • distribution/distribution
    • Docker
    • dockerfile 与镜像构建
  • K8s

    • K8s
    • 日志收集
    • 服务网格
    • 常用命令
    • 污点与容忍度
    • Kubectl
    • 应用发布
    • 存储
    • Cert-Manager
    • K8s Pod 生命周期与健康检查
    • 负载均衡器
    • 压力节点驱逐
    • Helm chart
    • 准入控制器

docker 镜像打包

以迁移 release 机器的 clang 环境为例

  1. 从虚拟机的根目录进行打包,排除部分不需要的目录
sudo tar -cvpzf system.tar --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/media  --exclude=/pack  --exclude=/home --exclude=/tmp --exclude=/data --exclude=/var/lib/docker /
  1. 导入文件到 docker 镜像中

比如将系统包导入到镜像 clang-check-test 中

docker import system.tar clang-check-test
  1. 运行镜像即可
docker run -it commit clang-check-test bash

扩展知识

docker load 与 docker import

相同点

都是将一个文件导入成镜像

不同点

  • 两者的区别在于容器快照将会丢弃所有的历史记录和元数据信息,而镜像存储文件将保存完整记录,体积也会更大。此外从容器快照文件导入时,也可以重新指定标签等元数据。
  • Import 支持导入外部系统的文件结构目录

docker save 与 docker export

相同点

都是保存成一个文件,用于迁移

不同点

  • 将一个镜像导出为文件,再使用 docker load 命令将文件导入为一个镜像,会保存该镜像的的所有历史记录。比 docker export 命令导出的文件大,很好理解,因为会保存镜像的所有历史记录。
  • docker export container_id:将一个容器导出为文件,再使用 docker import 命令将容器导入成为一个新的镜像,但是相比 docker save 命令,容器文件会丢失所有元数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照。
Prev
Docker
Next
docker 镜像加速