主要功能
- 镜像拉取:从Docker Hub或私有仓库下载镜像。输入镜像名或
镜像名:tag,输出本地存储的完整镜像层。例如docker pull nginx:latest拉取最新版Nginx。 - 镜像导出为tar:用
docker save将镜像打包成tar文件。输入镜像名/ID加输出路径,生成单文件,适合备份或离线迁移。支持多镜像打包到一个tar。 - tar文件加载为镜像:通过
docker load -i从tar文件恢复镜像。输入tar文件路径,输出完整镜像层。保留历史记录和元数据,支持回滚操作。 - 容器导出为tar:用
docker export将运行中或停止的容器导出。输入容器名加输出路径,生成快照文件。文件体积比docker save小。 - tar导入为新镜像:用
docker import从容器tar创建新镜像。输入tar文件并指定新镜像名:Tag,输出不含历史层的扁平快照。不支持回滚。 - 容器运行与管理:
docker run -it -d --name 别名 镜像名:Tag /bin/bash启动容器。docker ps -a查看所有容器状态。docker stop停止容器。docker exec或docker attach进入容器。 - 镜像删除:
docker rmi -f 镜像名/ID强制删除本地镜像。释放存储空间。
如何使用
- 拉取镜像:
docker pull 镜像名:tag - 保存镜像:
docker save 镜像名 -o 路径/文件名.tar - 加载镜像:
docker load -i 路径/文件名.tar - 导出容器:
docker export -o 路径/文件名.tar 容器名 - 导入容器为新镜像:
docker import 文件名.tar 新镜像名:Tag - 运行容器并命名:
docker run -it -d --name 别名 镜像名:Tag /bin/bash - 进入运行容器:
docker exec -it 容器名 /bin/bash
核心优势
- save vs export:
docker save保留镜像层历史,支持回滚。docker export只生成容器快照,文件小但丢失元数据。一般情况,save用于镜像备份,export用于制作基础镜像。 - load vs import:
docker load从tar恢复镜像,不能改名。docker import允许为新镜像指定名称,但导入save文件可能报命令找不到错误。 - 多镜像打包:
docker save支持将多个镜像打包到一个tar。docker export只能导出单个容器。实际使用时,离线环境用save配合docker-compose.yml更合适。
同类竞品对比
| 对比维度 | Docker | Podman | containerd |
|---|---|---|---|
| 镜像导出机制 | docker save生成tar,保留全部层历史 |
podman save类似,支持OCI格式 |
ctr image export,输出原始层 |
| 容器导出机制 | docker export导出快照,丢失历史 |
podman export功能相同 |
不直接支持容器导出 |
| 导入重命名支持 | docker import支持,docker load不支持 |
podman load不支持重命名,podman import支持 |
ctr image import不支持重命名 |
| 多镜像打包 | docker save支持多镜像到单tar |
podman save支持多镜像 |
ctr不支持多镜像打包 |
| 回滚能力 | docker save/load保留层历史,支持回滚 |
podman save/load保留历史 |
ctr镜像操作保留历史 |
| 文件体积 | export文件小于save |
类似 | 类似 |
应用场景
- 离线环境部署:用
docker save将多镜像打包,docker load恢复。适合无法连接外网的服务器。 - 基础镜像制作:用
docker export导出运行中容器,docker import导入为新镜像。适合自定义基础环境。 - 镜像迁移:在不同主机间复制镜像。
docker save生成tar,拷贝后docker load加载。 - 容器快照备份:对容器做临时快照,用
docker export导出,快速恢复特定状态。不支持历史回滚,所以只做单点备份。 - 多版本管理:
docker save保留层历史,可回滚到之前版本。docker import则不可回滚。
适用人群
- 运维工程师:需要离线部署、镜像迁移、容器备份。用
save/load处理多镜像组合。 - 开发测试人员:构建自定义基础镜像,用
export/import快速生成测试环境。 - 系统管理员:管理多主机Docker环境,通过tar文件分发镜像或容器。
- DevOps工程师:在CI/CD流程中,用
docker save打包镜像,docker load在目标环境恢复。






这一切,似未曾拥有