Docker离线下载和导入镜像

Docker离线下载和导入镜像

 
msd_lite的arm64平台latest版本为例
点击Tags--latest--linux/arm64
可以看到
DIGEST:sha256:a38d424ee77229fc9efc03a7e64726529560f6358dc1527da544a52080ed2fd3
任意Linux平台下载次镜像(相同平台需要带DIGEST,和正常拉取镜像命令完全一样)
XML/HTML代码
  1. docker pull tinyserve/msd_lite:latest@sha256:a38d424ee77229fc9efc03a7e64726529560f6358dc1527da544a52080ed2fd3  
查看下载镜像
XML/HTML代码
  1. docker images  
导出压缩包
XML/HTML代码
  1. docker save tinyserve/msd_lite > /root/msd_lite.tar tinyserve/msd_lite:latest  
直接下载msd_lite.tar到本地然后上传到本地docker服务器
或者直接scp传输到本地服务器
XML/HTML代码
  1. scp msd_lite.tar root@本地服务器IP:/root/msd_lite.tar  
如果本地内网无法直接连接可以本地服务器下载远程服务器镜像并导入
XML/HTML代码
  1. scp root@远程服务器:/root/msd_lite.tar msd_lite.tar  
导入镜像到Docker
XML/HTML代码
  1. docker load -i msd_lite.tar  
注意不同平台的导入后会丢失镜像的tag需要用命令修改
XML/HTML代码
  1. docker tag  [IMAGE ID]  tinyserve/msd_lite:latest  
相同平台的下载不需要带DIGEST,可以直接默认拉取,导入时候不会丢失tag。
 
docker load与docker import
首先,想要清楚的了解docker load与docker import命令的区别,就必须了解镜像与容器的区别:
镜像:用来启动容器的只读模板,是容器启动所需的rootfs,类似于虚拟机所使用的镜像。
容器:Docker 容器是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。
镜像是容器的基础,可以简单的理解为镜像是我们启动虚拟机时需要的镜像,容器时虚拟机成功启动后,运行的服务。
想要了解docker load与docker import命令的区别,还必须知道docker save与docker export命令:
docker save images_name:将一个镜像导出为文件,再使用docker load命令将文件导入为一个镜像,会保存该镜像的的所有历史记录。比docker export命令导出的文件大,很好理解,因为会保存镜像的所有历史记录。
docker export container_id:将一个容器导出为文件,再使用docker import命令将容器导入成为一个新的镜像,但是相比docker save命令,容器文件会丢失所有元数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照。
 
Docker导入镜像(只能导出已经正常运行的容器)
查看容器ID
XML/HTML代码
  1. docker ps  
导出指定容器ID
XML/HTML代码
  1. docker export [CONTAINER ID] > /root/msd_lite.tar  
导入备份的容器
XML/HTML代码
  1. docker import  msd_lite.tar  tinyserve/msd_lite:latest  
openwrt之类编译出来的tar.gz的压缩包导入
docker import xxx.tar.gz  imagename:tag
XML/HTML代码
  1. docker import  openwrt-x86-64-generic-rootfs.tar.gz openwrt:v1  

上一篇: 常用VPS脚本合集
下一篇: OpenVz/LXC一键重装系统脚本发布

访客评论
目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):