导出Docker镜像或者容器
说起 Docker
当然是离不开镜像和容器,有时候我们需要做一些镜像和容器的备份,便于后期恢复使用,也可以提供给其它人使用,那么备份镜像和容器涉及到哪些命令,又是怎么使用的呢?本文介绍一下Docker镜像的导入导出,用于迁移、备份、升级等场景。
EXPORT命令
1 | docker export [options] container |
我们输入 docker export --help
来看一下具体用法,如下图:
示例:
1 | docker export -o mysql8.tar mysql8 |
其中 -o
表示输出到文件,mysql8.tar
为目标文件,mysql8
是源容器名(name
)
IMPORT命令
1 | docker import [options] file |URL| - [REPOSITORY[:TAG]] |
我们输入 docker import --help
来看一下具体用法,如下图:
示例:
1 | docker import mysql8.tar mysql:1.0 |
SAVE命令
1 | docker save [options] images [images...] |
我们输入 docker save --help
来看一下具体用法,如下图:
示例:
1 | docker save -o mysql.tar mysql:latest |
使用以上两种方式都可以,其中 -o
和 >
表示输出到文件,mysql.tar
为目标文件,mysql:latest
是源镜像名(name:tag
)
LOAD命令
1 | docker load [options] |
我们输入 docker load --help
来看一下具体用法,如下图:
示例:
1 | docker load -i mysql.tar |
其中 -i
和 <
表示从文件输入。会成功导入镜像及相关元数据,包括 tag
信息
区别
export
命令导出的tar文件略小于save
命令导出的export
命令是从容器(container
)中导出tar
文件,而save
命令则是从镜像(images
)中导出基于第二点,
export
导出的文件再import
回去时,无法保留镜像所有历史(即每一层layer
信息,不熟悉的可以去看Dockerfile
),不能进行回滚操作;而save
是依据镜像来的,所以导入时可以完整保留下每一层layer
信息。
如何选择
可以依据具体使用场景来选择命令
- 若是只想备份
images
,使用save
、load
即可 - 若是在启动容器后,容器内容有变化,需要备份,则使用
export
、import
。
原文作者: dgb8901,yinxing
原文链接: https://www.itwork.club/2021/09/28/docker-export-images/
版权声明: 转载请注明出处
为您推荐
体验小程序「简易记账」
关注公众号「特想学英语」