docker image 导入导出 保存 Tag 标记

👌 2020-03-28 docker image 导入导出 保存 Tag 标记

两者区别 VS

  • docker save 保存的是镜像(image),docker export 保存的是容器(container)
  • 对于 Docker Save 方法,会保存该镜像的所有历史记录,包含 commit 历史
  • 对于 Docker Export 方法,不会保留历史记录,即没有 commit 历史
  • docker load 用来载入镜像包,docker import 用来载入容器包,但两者都会恢复为镜像
  • docker load 不能对载入的镜像重命名,而 docker import 可以为镜像指定新名称

docker save - load

save

示例 docker save -o nginx.tar nginx:latest 或 docker save > nginx.tar nginx:latest

其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)

load

示例 docker load -i nginx.tar 或 docker load < nginx.tar 其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息

docker export - import

export

示例 docker export -o nginx-test.tar nginx-test

导出为tar

docker export #ID or #Name > /home/export.tar

其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)

import

示例 docker import nginx-test.tar nginx:imp 或 cat nginx-test.tar | docker import - nginx:imp

docker 命令混用情况

save -> import

export -> load

注意事项

「docker save 镜像 ID」保存的镜像会丢失 Tag 信息,可以使用「docker save XXX:Tag」方式保存镜像