本文盘点docker导入导出命令的使用。
1. 各操作含义
- docker save:将一个镜像导出为文件,保存的是该镜像的所有历史记录;
- docker export:将一个容器导出为文件,保存的是容器当时的状态,即容器快照;
- docker load:将镜像存储文件导入到本地镜像库;
- docker import:导入一个容器快照到本地镜像库;
2. 区别
docker save和docker export之间的区别:
1)docker save是将镜像保存为tar包,且会保存该镜像的父层、标签、所有历史等信息;docker export是将容器文件系统保存为tar包,保存的是容器当时的状态(快照);
2) docker save可以同时指定多个镜像名称;docker export只能指定一个容器名称;
3)docker save保存的镜像文件tar包使用docker load命令加载还原;docker export保存的容器快照tar包使用docker import命令导入还原;
4)docker save保存的tar包文件通常比docker export导出的文件要大;
docker load和docker import之间的区别:
1)docker load将镜像存储文件导入到本地镜像库;docker import将容器快照文件导入到本地镜像库;
2)docker load不能指定url;而docker import可以指定url来进行导入;
3. 命令使用示例
下面对命令的使用进行说明:
3.1 docker save
命令
docker save [选项] IMAGE [IMAGE...]
说明
保存一个或多个镜像到一个tar包(默认将流转为标准输出)
选项
-o, --output string 写入到文件而不是标准输出
示例:
[root@localhost ~]# docker image ls -a
REPOSITORY TAG IMAGE ID CREATED SIZE
127.0.0.1:5000/tomcat latest ca9e2fccef98 3 months ago 463MB
tomcat latest ca9e2fccef98 3 months ago 463MB
registry latest 2e2f252f3c88 5 months ago 33.3MB
[root@localhost ~]# docker save 127.0.0.1:5000/tomcat > ./tomcat_save.tar
[root@localhost ~]# ll
total 466420
-rw-------. 1 root root 1652 Nov 4 22:43 anaconda-ks.cfg
-rw-r--r--. 1 root root 1700 Nov 4 22:59 initial-setup-ks.cfg
-rw-r--r--. 1 root root 477604864 Feb 19 10:35 tomcat_save.tar
drwxr-xr-x. 2 root root 6 Nov 5 11:00 webapps
3.2 docker export
命令
docker export [选项] CONTAINER
说明
保存一个容器文件系统到一个tar包
选项
-o, --output string 写入到文件而不是标准输出
示例:
[root@localhost ~]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
928b7b741769 127.0.0.1:5000/tomcat "catalina.sh run" 6 seconds ago Up 5 seconds 0.0.0.0:8080->8080/tcp gallant_kirch
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# docker export 928b7b741769 > ./tomcat_export.tar
[root@localhost ~]# ll
total 923216
-rw-------. 1 root root 1652 Nov 4 22:43 anaconda-ks.cfg
-rw-r--r--. 1 root root 1700 Nov 4 22:59 initial-setup-ks.cfg
-rw-r--r--. 1 root root 467757056 Feb 19 10:50 tomcat_export.tar
-rw-r--r--. 1 root root 477604864 Feb 19 10:35 tomcat_save.tar
drwxr-xr-x. 2 root root 6 Nov 5 11:00 webapps
3.3 docker load
命令
docker load [选项]
说明
从tar包或标准输入加载一个镜像
选项
-i, --input string 从tar包文件读取而不是标准输入
-q, --quiet 不输出信息
示例:
[root@localhost ~]# ll
total 923216
-rw-------. 1 root root 1652 Nov 4 22:43 anaconda-ks.cfg
-rw-r--r--. 1 root root 1700 Nov 4 22:59 initial-setup-ks.cfg
-rw-r--r--. 1 root root 467757056 Feb 19 10:50 tomcat_export.tar
-rw-r--r--. 1 root root 477604864 Feb 19 10:35 tomcat_save.tar
drwxr-xr-x. 2 root root 6 Nov 5 11:00 webapps
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# docker load < ./tomcat_save.tar
Loaded image: 127.0.0.1:5000/tomcat:latest
3.4 docker import
命令
docker import [选项] file|URL|- [REPOSITORY[:TAG]]
说明
从tar包内容创建一个镜像。
选项
-c, --change list 应用Dockerfile说明从而创建镜像;
-m, --message string 为导入的镜像设置commit信息;
示例:
[root@localhost ~]# ll
total 923216
-rw-------. 1 root root 1652 Nov 4 22:43 anaconda-ks.cfg
-rw-r--r--. 1 root root 1700 Nov 4 22:59 initial-setup-ks.cfg
-rw-r--r--. 1 root root 467757056 Feb 19 10:50 tomcat_export.tar
-rw-r--r--. 1 root root 477604864 Feb 19 10:35 tomcat_save.tar
drwxr-xr-x. 2 root root 6 Nov 5 11:00 webapps
[root@localhost ~]# cat ./tomcat_export.tar |docker import - 127.0.0.1:5000/tomcat:latest
sha256:f035bbb7209cbecb2dec836efd841e120934b177bd05f7da1112450088263cd6
[root@localhost ~]# docker image ls -a
REPOSITORY TAG IMAGE ID CREATED SIZE
127.0.0.1:5000/tomcat latest f035bbb7209c 13 seconds ago 453MB
tomcat latest ca9e2fccef98 3 months ago 463MB
127.0.0.1:5000/tomcat <none> ca9e2fccef98 3 months ago 463MB
registry latest 2e2f252f3c88 5 months ago 33.3MB
4. 帮助
可以使用如下命令查看详细帮助:
docker save --help
docker export --help
docker load --help
docker import --help
参考文章:
最新评论
网飞没问题, 迪士尼+有解决方案么?
pp助手是安卓手机用的,根本下载用不来苹果
已解决
这样的话数据库里的结构为{"attachment":{"content":"xxx"}}, 要怎么才能变成{"content":"xxx"},从而使结构保持一致?
赞! make test不过的坑都写到的,谢谢楼主~
谢谢你
用了root用户还是一直502是怎么回事呢
student id 是空的