方法1:使用 docker save 命令
镜像导出 (Export)
# 导出单个镜像到文件 docker save -o <输出文件名.tar> <镜像名:标签>
# 示例:导出ubuntu镜像 docker save -o ubuntu_image.tar ubuntu:latest # 导出多个镜像到同一个文件 docker save -o multiple_images.tar image1:tag1 image2:tag2
docker images #查看docker镜像

docker save -o /volume2/Data/immich.tar ghcr.io/immich-app/immich-machine-learning:release
#只能是名称+版本号,不能用ID
)
方法2:使用 docker export 命令(针对容器)
先创建一个容器
docker run -itd –name temp_container ubuntu:latest
导出容器为镜像文件
docker ps #查看运行的容器
docker export -o <输出文件地址、文件名.tar> <镜像名:标签或者id>
docker export -o /volume2/Data/immich3.tar 3c02f7432941

删除临时容器
docker rm -f temp_container
镜像还原 (Import)
方法1:使用 docker load 命令
从tar文件加载镜像
docker load -i <镜像文件.tar>
示例
docker load -i ubuntu_image.tar
方法2:使用 docker import 命令
从tar文件导入为镜像
docker import <镜像文件.tar> <新镜像名:标签>
示例
docker import container_image.tar myubuntu:v1.0
主要区别对比
| 特性 | docker save | docker export |
|---|---|---|
| 操作对象 | 镜像 | 容器 |
| 包含内容 | 完整镜像(层信息、元数据) | 容器当前状态的文件系统 |
| 保留历史 | 保留 | 不保留 |
| 压缩 | 支持 | 不支持(需要手动压缩) |
实际操作示例
完整流程示例:
1. 导出镜像
docker save -o my_images.tar nginx:latest mysql:5.7
2. 查看导出的文件
ls -lh my_images.tar
3. 复制到其他机器(或存储备份)
scp my_images.tar user@remote_server:/path/to/backup/
4. 在目标机器上加载镜像
docker load -i my_images.tar
5. 验证镜像是否加载成功
docker images