Docker 镜像的导出和还原操作

文章目录

镜像导出 (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

注意事项

  1. 版本兼容性:导出的镜像可能不兼容不同版本的Docker
  2. 文件大小:大型镜像导出的文件会比较大,建议压缩
  3. 元数据docker save 会保留完整的镜像元数据
  4. 私有镜像 :导出私有仓库镜像时需要先 docker pull 到本地

这些命令可以帮助你在不同环境之间迁移Docker镜像,或者进行备份和恢复操作。

相关推荐
hanyi_qwe11 分钟前
发布策略 【K8S (三)】
docker·容器·kubernetes
眠りたいです15 分钟前
Docker核心技术和实现原理第二部分:docker镜像与网络原理
运维·网络·docker·容器
XiaoHu020724 分钟前
Linux多线程(详细全解)
linux·运维·服务器·开发语言·c++·git
Y淑滢潇潇38 分钟前
RHCE Day 10 流程控制之条件语句和循环结构
linux·运维·rhce
gaize12131 小时前
服务器怎么选择与配置才能满足企业需求?
运维·服务器·架构
德育处主任1 小时前
『NAS』在群晖部署图片压缩工具-Squoosh
前端·javascript·docker
鸠摩智首席音效师1 小时前
如何安装和配置 Nginx 反向代理服务器 ?
运维·nginx
Mr. Cao code2 小时前
Docker数据管理:持久化存储最佳实践
java·docker·容器
Shanxun Liao2 小时前
CentOS 7.9 根分区 / 已经 100% 用满隐藏占用解决办法
linux·运维·centos
FOREVER-Q3 小时前
Windows 下通过 SSH 替代 Gitee OAuth Token 推送配置指南
运维·服务器