Docker 镜像与容器导入导出命令详解
571 字
3 分钟
Docker 镜像与容器导入导出命令详解
Docker 镜像与容器导入导出命令详解
Docker 提供了多组镜像和容器的导入导出命令,初学者容易混淆。本文梳理它们之间的核心区别。
docker export / docker import
作用于 容器,导出的是容器当前文件系统的快照。
# 导出容器快照docker export container-id > snapshot.tar
# 导入为镜像docker import snapshot.tar new-image-name:tag特点:
- 只保留从镜像启动到 export 时对文件系统的修改,丢弃历史层和元数据
- 导出的包体积较小(只有一层文件系统)
- 导入时必须指定新镜像名称和 tag
- 导入后的镜像启动必须加
/bin/bash或其他 entrypoint
适用场景: 制作基础镜像。例如从 ubuntu 镜像启动容器,安装软件后导出为基础镜像分发给其他人。
docker commit
作用于 容器,将容器的修改保存为新的镜像。
docker commit container-id new-image-name:tag常用选项:
-a:作者信息-m:提交说明-p:提交时暂停容器运行
特点:
- 保存了容器的读写层 + 镜像原有的历史层
- 原本 N 层的镜像,commit 后会变成 N+1 层
- 可以保留启动命令等元数据
适用场景: 快速保存调试环境的修改,生成可复用的镜像。
docker save / docker load
作用于 镜像,导出的是完整的镜像分层结构。
# 导出镜像docker save -o image.tar image-name:tag
# 导入镜像docker load -i image.tar特点:
- 保留完整的分层结构和元数据
- 包体积比 export 大(包含所有历史层)
load无法重命名镜像,import可以指定新名称
适用场景: 离线环境迁移镜像。在没有外网的生产服务器上,先在有网的机器上 pull 镜像,save 打包后拷贝到生产环境再 load。
核心区别总结
| 命令 | 作用对象 | 保留历史层 | 包体积 | 导入后可重命名 |
|---|---|---|---|---|
docker export | 容器 | ❌ 只有一层 | 小 | ✅ |
docker commit | 容器 | ✅ 增加一层 | 中 | ✅ |
docker save | 镜像 | ✅ 完整保留 | 大 | ❌ |
docker load | 镜像 | ✅ 完整保留 | 大 | ❌ |
docker import | 快照文件 | ❌ 只有一层 | 小 | ✅ |
一句话记忆法:save/load 是对镜像操作,export/import 是对容器操作,commit 是容器→镜像的桥梁。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
Docker 镜像与容器导入导出命令详解
https://blog.zinzin.cc/posts/docker-export-import-diff/相关文章智能推荐
1
使用 Docker 完成 Nacos 集群部署
Linux运维与部署基于 Docker 部署 Nacos 2.2 三节点集群,搭配 MySQL 持久化与 Nginx 负载均衡的完整实践。
2
服务器日常初始化指南
Linux运维与部署新服务器到手后的安全加固与常用软件安装清单,包含 SSH 安全配置、Docker、NPM 等。
3
使用 acme.sh 申请泛域名 SSL 证书
Linux运维与部署通过 acme.sh + Cloudflare DNS API 免费申请 Let's Encrypt 泛域名证书,并自动续期。
4
SpringBoot 邮件发送与异步优化
JavaSpring Boot 集成邮件发送,以及使用 @Async 实现异步邮件发送,并附 @Async 失效的常见原因排查清单。
5
2025 年终总结
年度总结2025 年的回顾与思考,涵盖工作、学习、身体、书评、游戏、番剧与旅行。
随机文章随机推荐













