Docker 镜像和容器的导入导出
一、镜像的导出和导入
1.镜像的保存
[root@k8s-master ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest ae513a47849c 2 months ago 109MB debian jessie 4eb8376dc2a3 2 months ago 127MB rabbitmq 3.6.8 8cdcbee37f62 15 months ago 179MB [root@k8s-master tmp]# docker save ae513a47849c > nginx-save.tar [root@k8s-master tmp]# ls -lh total 108M -rw-r--r-- 1 root root 108M Jul 4 09:32 nginx-save.tar
第二种写法:
docker save -o nginx-save.tar ae513a47849c
2.镜像的导入
可以将导出的nginx-save.tar包传到需要的docker主机上面,然后执行导入命令.
[root@k8s-master tmp]# ls -lh total 108M -rw-r--r-- 1 root root 108M Jul 4 09:32 nginx-save.tar [root@k8s-master tmp]# docker load < nginx-save.tar 82b81d779f83: Loading layer [==================================================>] 54.21MB/54.21MB 7ab428981537: Loading layer [==================================================>] 3.584kB/3.584kB Loaded image ID: sha256:ae513a47849c895a155ddfb868d6ba247f60240ec8495482eca74c4a2c13a881
第二种写法:
docker load -i nginx-save.tar
二、容器的导出和导入
1.容器的导出
[root@k8s-master tmp]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 220aee82cfea tomcat:7 "catalina.sh run" 9 seconds ago Up 7 seconds 8080/tcp tomcat7
docker export -o mysql-`date +%Y%m%d`.tar 220aee82cfea
2.容器的导入
docker import my_ubuntu_v3.tar runoob/ubuntu:v4
镜像和容器 导出和导入的区别:
1.镜像导入 是复制的过程
2.容器导入 是将当前容器 变成一个新的镜像
save 和 export区别:
1)save 保存镜像所有的信息-包含历史
2)export 只导出当前的信息
####
Docker load 之后镜像名字为none问题解决
近期,我发现,将镜像压缩包使用docker load -i 命令之后,镜像的名字和标签都是none,每次都需要重命名镜像,很是麻烦
这个问题的根本在于这个镜像压缩包在打包的时候操作不当所导致
例如,使用镜像ID打包的话导致解压的出来的镜像没有名字
docker save -o redis.tar 7864316753
因此,推荐使用镜像的名字进行打包,例如:
docker save -o redis.tar redis:5.0.2
此方式打包的镜像,解压出来就有镜像名称了
另外,附上重命名镜像的方法:
docker tag [镜像id] [新镜像名称]:[新镜像标签]