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

相关推荐
维尔切4 小时前
Docker 监控平台部署
运维·docker·容器·grafana·prometheus
温柔一只鬼.4 小时前
Docker快速入门——第三章Docker环境安装
运维·docker·容器
IT 小阿姨(数据库)4 小时前
PostgreSQL etcd 集群介绍
运维·数据库·sql·postgresql·centos·etcd
红尘客栈25 小时前
k8s的ymal文件
docker·容器·kubernetes
hello_2505 小时前
k8s opa集成
云原生·容器·kubernetes
qq_339191146 小时前
aws docker安装,ec2安装docker-compose
docker·云计算·aws
宇宙第一小趴菜6 小时前
11 安装回忆相册
linux·运维·centos7·yum·回忆相册·kh_mod
tjsoft7 小时前
设置 windows nginx.exe 每天 重启
运维·windows·nginx
isyangli_blog7 小时前
Windows & Linux 操作系统分区管理
linux·运维·服务器