持久化docker的镜像或容器的方法

Docker的镜像和容器可以有两种方式来导出

  • ​docker save #ID or #Name​
  • ​docker export #ID or #Name​

docker save和docker export的区别

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

save命令 



docker save [options] images [images...]

示例 

docker save -o nginx.tar nginx:latest 

或 

docker save > nginx.tar nginx:latest 

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

load命令



docker load [options]

示例 

docker load -i nginx.tar 

或 

docker load < nginx.tar 

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

export命令



docker export [options] container

示例 

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 [options] file|URL|- [REPOSITORY[:TAG]]

示例 

docker import nginx-test.tar nginx:imp 

或 

cat nginx-test.tar | docker import - nginx:imp