卸载Docker时保留本地镜像和容器方式

 更新时间:2024年11月27日 09:59:59   作者:骑上单车去旅行  
文章讲述了如何在Linux、Windows和Mac系统中备份和恢复Docker镜像和容器,备份过程包括列出本地镜像、保存镜像和导出容器,恢复过程则涉及卸载Docker、重新安装Docker以及使用dockerload和dockerimport命令恢复镜像和容器

1. 在Linux系统中(以Ubuntu和CentOS为例)

备份镜像和容器相关数据

镜像备份

首先,列出本地所有的镜像并记录它们的信息,包括镜像名称、标签和ID。

可以使用docker images命令查看。然后使用docker save命令来保存镜像。

例如,要保存名为myimage,标签为latest的镜像,可以使用以下命令:

docker save -o myimage_latest.tar myimage:latest

其中-o选项指定输出文件的名称,myimage_latest.tar是保存后的文件名,可以根据需要修改。

如果有多个镜像需要保存,可以依次对每个镜像执行此操作。

容器备份(可选)

如果要备份容器,可以先使用docker export命令。

例如,对于一个名为mycontainer的容器,使用以下命令将其导出为一个tar文件:

docker export -o mycontainer.tar mycontainer

不过要注意:

docker export导出的是容器的文件系统快照,不包括容器的元数据(如容器的启动命令、环境变量等)。

如果希望完整备份容器的状态,包括元数据,可能需要考虑使用其他工具或者方法,如记录容器的创建参数并结合文件系统快照来进行备份。

卸载Docker

  • 按照常规的卸载步骤进行操作,如在Ubuntu中运行
sudo apt - get purge docker - ce docker - ce - cli containerd.io
  • 在CentOS中运行
sudo yum remove docker - ce docker - ce - cli containerd.io
  • 来卸载Docker引擎和相关组件。

重新安装Docker后恢复镜像和容器(如果需要)

镜像恢复

在重新安装Docker后,使用docker load命令来恢复之前备份的镜像。

例如,对于之前备份的myimage_latest.tar文件,可以使用以下命令恢复:

docker load -i myimage_latest.tar

容器恢复(可选)

对于使用docker export备份的容器,在恢复镜像后,可以使用docker import命令来恢复容器。

例如,对于之前备份的mycontainer.tar文件,可以使用以下命令恢复:

docker import mycontainer.tar mynewcontainer:latest

不过,使用docker import恢复的容器与原来的容器在某些方面可能会有所不同,如容器的启动命令等可能需要重新设置,因为它只导入了文件系统内容。

2. 在Windows系统中

备份镜像和容器相关数据

镜像备份

在命令提示符(CMD)或PowerShell中,使用docker images命令查看本地镜像信息。然后使用docker save命令来保存镜像。

例如,对于名为myimage,标签为latest的镜像,运行以下命令:

docker save -o myimage_latest.tar myimage:latest

容器备份(可选)

虽然Windows系统下Docker容器是基于Hyper - V运行的,但同样可以使用docker export命令备份容器。

例如,对于名为mycontainer的容器,运行以下命令将其导出为tar文件:

docker export -o mycontainer.tar mycontainer

卸载Docker

  • 通过“控制面板”->“程序和功能”卸载Docker Desktop。

重新安装Docker后恢复镜像和容器(如果需要)

镜像恢复

在重新安装Docker后,在命令提示符或PowerShell中使用docker load命令恢复镜像。

例如,对于之前备份的myimage_latest.tar文件,运行以下命令:

docker load -i myimage_latest.tar

容器恢复(可选)

对于使用docker export备份的容器,在恢复镜像后,使用docker import命令恢复容器。

例如,对于之前备份的mycontainer.tar文件,运行以下命令:

docker import mycontainer.tar mynewcontainer:latest

3. 在Mac系统中

备份镜像和容器相关数据

镜像备份

在终端中使用docker images命令查看本地镜像信息,然后使用docker save命令保存镜像。

例如,对于名为myimage,标签为latest的镜像,运行以下命令:

docker save -o myimage_latest.tar myimage:latest

容器备份(可选)

使用docker export命令备份容器。

例如,对于名为mycontainer的容器,运行以下命令将其导出为tar文件:

docker export -o mycontainer.tar mycontainer

卸载Docker

  • 通过将“Docker Desktop”应用程序拖移到废纸篓来卸载。

重新安装Docker后恢复镜像和容器(如果需要)

镜像恢复

重新安装Docker后,在终端中使用docker load命令恢复镜像。

例如,对于之前备份的myimage_latest.tar文件,运行以下命令:

docker load -i myimage_latest.tar

容器恢复(可选)

对于使用docker export备份的容器,在恢复镜像后,使用docker import命令恢复容器。

例如,对于之前备份的mycontainer.tar文件,运行以下命令:

docker import mycontainer.tar mynewcontainer:latest

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 阿里云镜像安装docker报错的问题及解决方案

    阿里云镜像安装docker报错的问题及解决方案

    这篇文章主要介绍了阿里云镜像安装docker报错的问题及解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 在docker中配置Oracle11g的过程

    在docker中配置Oracle11g的过程

    这篇文章主要介绍了在docker中配置Oracle11g ,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • 详解Docker容器可视化监控中心搭建

    详解Docker容器可视化监控中心搭建

    本篇文章主要介绍了详解Docker容器可视化监控中心搭建,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Docker系列学习之Swarm mode管理节点常用命令详解

    Docker系列学习之Swarm mode管理节点常用命令详解

    这篇文章主要为大家介绍了Docker系列学习之Swarm mode管理节点常用命令详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • 使用Docker迁移服务到离线服务器的过程

    使用Docker迁移服务到离线服务器的过程

    最近遇到的这个场景,需要把之前开发的一套系统迁移到一个离线的服务器上,这个服务器有点麻烦,接入VPN后通过堡垒机才能访问,速度也很慢,遇到不少坑,本文记录一下迁移过程,需要的朋友可以参考下
    2023-06-06
  • Docker常见命令整理汇总(包括镜像命令、容器命令)

    Docker常见命令整理汇总(包括镜像命令、容器命令)

    这篇文章主要给大家介绍了关于Docker常见命令整理汇总的相关资料,包括镜像命令、容器命令等等,通过一个个示例来加深各位看官对docker相关命令的理解以及记忆,需要的朋友可以参考下
    2022-07-07
  • Docker教程之dockerfile构建centos镜像

    Docker教程之dockerfile构建centos镜像

    这篇文章主要介绍了Docker教程之dockerfile构建centos镜像的相关资料,需要的朋友可以参考下
    2022-11-11
  • Docker 容器指定自定义网段的固定IP/静态IP地址

    Docker 容器指定自定义网段的固定IP/静态IP地址

    这篇文章主要介绍了Docker 容器指定自定义网段的固定IP/静态IP地址的相关资料,需要的朋友可以参考下
    2016-12-12
  • docker mysql修改root账号密码并赋予权限

    docker mysql修改root账号密码并赋予权限

    本文主要介绍了docker mysql修改root账号密码并赋予权限,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • docker资源限制和compose部署详解

    docker资源限制和compose部署详解

    默认情况下,容器没有资源限制,并且可以使用主机内核调度程序允许的尽可能多的给定资源,这篇文章主要给大家介绍了关于docker资源限制和compose部署的相关资料,需要的朋友可以参考下
    2022-11-11

最新评论