文章目录
-
- 镜像导出 (Export)
-
- [方法1:使用 `docker save` 命令](#方法1:使用
docker save
命令) - [方法2:使用 `docker export` 命令(针对容器)](#方法2:使用
docker export
命令(针对容器))
- [方法1:使用 `docker save` 命令](#方法1:使用
- 镜像还原 (Import)
-
- [方法1:使用 `docker load` 命令](#方法1:使用
docker load
命令) - [方法2:使用 `docker import` 命令](#方法2:使用
docker import
命令)
- [方法1:使用 `docker load` 命令](#方法1:使用
- 主要区别对比
- 实际操作示例
- 注意事项
镜像导出 (Export)
方法1:使用 docker save
命令
bash
# 导出单个镜像到文件
docker save -o <输出文件名.tar> <镜像名:标签>
# 示例:导出ubuntu镜像
docker save -o ubuntu_image.tar ubuntu:latest
# 导出多个镜像到同一个文件
docker save -o multiple_images.tar image1:tag1 image2:tag2
方法2:使用 docker export
命令(针对容器)
bash
# 先创建一个容器
docker run -itd --name temp_container ubuntu:latest
# 导出容器为镜像文件
docker export -o container_image.tar temp_container
# 删除临时容器
docker rm -f temp_container
镜像还原 (Import)
方法1:使用 docker load
命令
bash
# 从tar文件加载镜像
docker load -i <镜像文件.tar>
# 示例
docker load -i ubuntu_image.tar
方法2:使用 docker import
命令
bash
# 从tar文件导入为镜像
docker import <镜像文件.tar> <新镜像名:标签>
# 示例
docker import container_image.tar myubuntu:v1.0
主要区别对比
特性 | docker save |
docker export |
---|---|---|
操作对象 | 镜像 | 容器 |
包含内容 | 完整镜像(层信息、元数据) | 容器当前状态的文件系统 |
保留历史 | 保留 | 不保留 |
压缩 | 支持 | 不支持(需要手动压缩) |
实际操作示例
完整流程示例:
bash
# 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
压缩优化:
bash
# 导出并压缩(节省空间)
docker save nginx:latest | gzip > nginx_image.tar.gz
# 加载压缩的镜像
gunzip -c nginx_image.tar.gz | docker load
注意事项
- 版本兼容性:导出的镜像可能不兼容不同版本的Docker
- 文件大小:大型镜像导出的文件会比较大,建议压缩
- 元数据 :
docker save
会保留完整的镜像元数据 - 私有镜像 :导出私有仓库镜像时需要先
docker pull
到本地
这些命令可以帮助你在不同环境之间迁移Docker镜像,或者进行备份和恢复操作。