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镜像,或者进行备份和恢复操作。

相关推荐
叫致寒吧21 小时前
Nginx基于域名的虚拟主机实操案例
运维·服务器·nginx
施努卡机器视觉1 天前
SNK施努卡车门自动化安装
运维·自动化
咕噜签名-铁蛋1 天前
云服务器与物理服务器、VPS的区别
运维·服务器
恒创科技HK1 天前
香港服务器流量有限制和带宽有限制区别在哪?
运维·服务器·网络
wanhengidc1 天前
机架式服务器有什么作用?
运维·服务器·web安全·智能手机·云计算
干啥都是小小白1 天前
Linux C编程
linux·运维·服务器
司铭鸿1 天前
化学式解析的算法之美:从原子计数到栈的巧妙运用
linux·运维·服务器·算法·动态规划·代理模式·哈希算法
❀͜͡傀儡师1 天前
docker部署orion-ops一站式运维管理平台
运维·docker·github
笨蛋不要掉眼泪1 天前
Docker概念入门与初步安装
docker·微服务·容器
last demo1 天前
MariaDB 数据库管理
linux·运维·服务器·数据库·php·mariadb