docker导入导出镜像

save和export区别:

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

保存(Save)

1
2
3
4
5
# 保留原镜像的名称和标签
docker save <IMAGE NAME>:<IMAGE TAG> > save.tar

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

示列:

1
2
3
docker save elasticsearch:7.1.1 > elasticsearch-7.1.1.tar
# 或
docker save b0cb1543380d > elasticsearch-7.1.1.tar

加载(Load)

1
docker load < save.tar

示列:

1
docker load < elasticsearch-7.1.1.tar

导出(Export)

1
docker export <CONTAINER ID> > export.tar

示列:

1
docker export b0cb1543380d > elasticsearch-7.1.1.tar

导入(Import)

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

示列:

1
docker import elasticsearch-7.1.1.tar elasticsearch:7.1.1

提交(Commit)

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

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

示列:

1
docker commit b0cb1543380d elasticsearch:latest

问题(None)

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

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

方案

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

示列:

1
docker tag b0cb1543380d elasticsearch:7.1.1

本文转自 https://juejin.cn/post/6844903905881505800,如有侵权,请联系删除。