带标签的 Docker 镜像打包为 tar 文件

现在还有人用docker吗

要将带标签的 Docker 镜像打包为 tar 文件,请使用 docker save 命令。以下是详细操作指南:

一、单镜像打包(推荐方式)

# 基础格式
docker save -o [输出文件名].tar [镜像名]:[标签]

# 示例:将 my-app:1.0 保存为 app-backup.tar
docker save -o app-backup.tar my-app:1.0

二、多镜像打包

# 同时打包多个镜像到单个文件
docker save -o all-images.tar \
  my-app:1.0 \
  redis:alpine \
  nginx:latest

三、压缩打包(节省空间)

# 直接生成gzip压缩包(.tar.gz)
docker save my-app:1.0 | gzip > app-backup.tar.gz

# 加载时解压
gunzip -c app-backup.tar.gz | docker load

四、操作验证

# 查看tar文件内容
tar -tvf app-backup.tar | head -n 5

# 加载镜像到新环境
docker load -i app-backup.tar

# 验证加载结果
docker images | grep my-app

五、使用场景与技巧

  1. 版本归档

    # 结合日期/版本号命名
    docker save -o my-app-$(date +%Y%m%d)-v1.0.tar my-app:1.0
    
  2. CI/CD 流水线

    # 在构建后自动打包
    docker build -t my-app:$CI_COMMIT_SHA .
    docker save -o my-app-$CI_COMMIT_SHA.tar my-app:$CI_COMMIT_SHA
    
  3. 跨平台传输

    # 压缩后传输(约减少70%体积)
    docker save my-app:prod | gzip | ssh user@server "gunzip | docker load"
    
  4. 批量导出所有镜像

    # 导出全部镜像(慎用,可能体积巨大)
    docker save $(docker images -q) -o all-images.tar
    

你可能感兴趣的:(docker,容器,运维)