docker导入导出镜像

1,039 阅读1分钟

save和export区别:

  1. docker save保存的是镜像(image),docker export保存的是容器(container);
  2. docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
  3. docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。

保存镜像

保存(Save)

 # 保留原镜像的名称和标签
 docker save <IMAGE NAME>:<IMAGE TAG> > save.tar
 
 # 不保留原镜像的基本信息,加载load后需执行tag命令重命名none镜像
 docker save <IMAGE ID> > save.tar 

示列:

docker save elasticsearch:7.1.1 > elasticsearch-7.1.1.tar
#
docker save b0cb1543380d > elasticsearch-7.1.1.tar

加载(Load)

docker load < save.tar

示列:

docker load < elasticsearch-7.1.1.tar

导出容器

导出(Export)

docker export <CONTAINER ID> > export.tar

示列:

docker export b0cb1543380d > elasticsearch-7.1.1.tar

导入(Import)

docker import export.tar <IMAGE NAME>:<IMAGE TAG>

示列:

docker import elasticsearch-7.1.1.tar elasticsearch:7.1.1

提交(Commit)

使用commit命令可以把一个正在运行的容器变成一个新的镜像。

docker commit <CONTAINER ID> <IMAGE NAME>:<IMAGE TAG>

示列:

docker commit b0cb1543380d elasticsearch:latest

问题(None)

docker加载新的镜像后repository和tag名称都为none的解决方法

REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
<none>                <none>              b0cb1543380d        2 months ago        847MB

方案 : 标签(tag)

docker tag <IMAGE ID> <IMAGE NAME>:<IMAGE TAG>

示列:

docker tag b0cb1543380d elasticsearch:7.1.1