Docker 镜像导入导出

少年辛苦终身事,莫向光阴惰寸功。这篇文章主要讲述Docker 镜像导入导出相关的知识,希望能为你提供帮助。
docker save说明:将指定镜像保存成 tar 归档文件,以tar和tar.gz结尾都行。
语法

docker save [OPTIONS] IMAGE [IMAGE...]

OPTIONS 说明:
  • -o :输出到的文件。
[root@harbor tmp]# docker images
REPOSITORYTAGIMAGE IDCREATEDSIZE
redisv1cc6cf492f5956 hours ago113MB
busyboxlatestbeae173ccac63 months ago1.24MB
nginxlatest605c77e624dd3 months ago141MB
redislatest7614ae9453d13 months ago113MB
[root@harbor tmp]# docker save-o nginx.tar nginx:latest
[root@harbor tmp]# ls
nginx.tar
[root@harbor tmp]# docker save-o nginx.tar.gz nginx:latest
[root@harbor tmp]# ls
nginx.tarnginx.tar.gz

docker load说明:导入使用 ??docker save?? 命令导出的镜像。
语法
docker load [OPTIONS]

OPTIONS 说明:
  • --input , -i :指定导入的文件,代替 STDIN。
  • --quiet , -q :精简输出信息。
以tar.gz结尾镜像包导入
[root@harbor tmp]# docker images
REPOSITORYTAGIMAGE IDCREATEDSIZE
redislatest7614ae9453d13 months ago113MB
[root@harbor tmp]# docker load < nginx.tar.gz
e379e8aedd4d: Loading layer [==================================================> ]62MB/62MB
b8d6e692a25e: Loading layer [==================================================> ]3.072kB/3.072kB
f1db227348d0: Loading layer [==================================================> ]4.096kB/4.096kB
32ce5f6a5106: Loading layer [==================================================> ]3.584kB/3.584kB
d874fd2bc83b: Loading layer [==================================================> ]7.168kB/7.168kB
Loaded image: nginx:latest
[root@harbor tmp]# docker images
REPOSITORYTAGIMAGE IDCREATEDSIZE
nginxlatest605c77e624dd3 months ago141MB
redislatest7614ae9453d13 months ago113MB

以tar结尾镜像包导入
[root@harbor tmp]# docker images
REPOSITORYTAGIMAGE IDCREATEDSIZE
redislatest7614ae9453d13 months ago113MB
[root@harbor tmp]# docker load < nginx.tar
e379e8aedd4d: Loading layer [==================================================> ]62MB/62MB
b8d6e692a25e: Loading layer [==================================================> ]3.072kB/3.072kB
f1db227348d0: Loading layer [==================================================> ]4.096kB/4.096kB
32ce5f6a5106: Loading layer [==================================================> ]3.584kB/3.584kB
d874fd2bc83b: Loading layer [==================================================> ]7.168kB/7.168kB
Loaded image: nginx:latest
[root@harbor tmp]# docker images
REPOSITORYTAGIMAGE IDCREATEDSIZE
nginxlatest605c77e624dd3 months ago141MB
redislatest7614ae9453d13 months ago113MB

Docker export 命令说明:将指定运行或停止的容器导出为tar包。
语法
docker export [OPTIONS] CONTAINER

OPTIONS说明:
  • -o :将输入内容写到文件。
使用redis:latest镜像运行一个docker redis容器。
[root@harbor tmp]# docker run -d --name redis redis:latest
00bd9bf582ffdf7dc89793252de9b663ce5b685061bb3652d167924270bed423
[root@harbor tmp]# docker ps
CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
00bd9bf582ffredis:latest"docker-entrypoint.s…"3 seconds agoUp 2 seconds6379/tcpredis
将运行中的redis容器导出称为redis.tar.gz包。
[root@harbor tmp]# docker export -o redis.tar.gz redis
[root@harbor tmp]# ls
nginx.tarnginx.tar.gzredis.tar.gz

停止redis容器
[root@harbor tmp]# docker stop redis
redis
将已经停止的redis容器导出为redis1.tzr.gz包
[root@harbor tmp]# docker export -o redis1.tar.gz redis
[root@harbor tmp]# ls
nginx.tarnginx.tar.gzredis1.tar.gzredis.tar.gz

Docker import说明:从 tar包导入内容以docker 镜像。
语法
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

OPTIONS说明:
  • -c :应用docker 指令创建镜像;
  • -m :提交时的说明文字
您可以指定一个??URL??或??-??(破折号)直接从??STDIN??. ??URL??可以指向包含文件系统的存档(.tar、.tar.gz、.tgz、.bzip、.tar.xz 或 .txz)或 Docker 主机上的单个文件。 如果你指定一个存档,Docker 会在相对于??/?? (root) 的容器中解压它。如果指定单个文件,则必须指定主机内的完整路径。要从远程位置导入,请指定以or协议??URI??开头的 a。??http://????https://??
[root@harbor tmp]# docker images
REPOSITORYTAGIMAGE IDCREATEDSIZE
redislatest7614ae9453d13 months ago113MB
[root@harbor tmp]# docker import redis1.tar.gz redis:v1
sha256:07d6e5a00daa386ed5117d7bf7751f74b46f5831aea69036580cd509bb6781e7
[root@harbor tmp]# docker images
REPOSITORYTAGIMAGE IDCREATEDSIZE
redisv107d6e5a00daa2 seconds ago109MB
redislatest7614ae9453d13 months ago113MB

通过url导出镜像
docker import https://example.com/exampleimage.tgz

【Docker 镜像导入导出】


    推荐阅读