AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1374550
Accepted
Nagev
Nagev
Asked: 2021-11-10 09:21:48 +0800 CST2021-11-10 09:21:48 +0800 CST 2021-11-10 09:21:48 +0800 CST

snap remove docker后如何恢复docker容器

  • 772

我用sudo snap remove docker. 我实际上并不想删除它,只是检查我是否安装了它snap(应该snap list在事后使用),相信它会提示我[Y/n]这样apt做。但它只是继续并删除了docker。美好的。重新安装它很快。

但是,我的容器在哪里?!所有的图像和容器(docker ps -a)都不见了!卸载它花了很长时间,所以我想知道是否有一些备份或文件仍然保留并且容器可以恢复?不关心图像,只关心容器。谢谢。

检查/var/snap/docker/common/var-lib-docker/containers过,但原来的容器不在那里。

snap
  • 1 1 个回答
  • 1639 Views

1 个回答

  • Voted
  1. Best Answer
    Nagev
    2021-11-10T10:17:42+08:002021-11-10T10:17:42+08:00

    事实证明,需要很长时间的操作确实是备份,或者用他们的术语来说,是快照。从文档中:

    快照是使用 snap save 命令手动生成的,并在删除快照时自动生成(需要 snapd 2.39+)。快照可用于备份快照的状态、将快照恢复到以前的状态以及将全新的 snapd 安装恢复到以前保存的状态。

    我检查了我的snapd版本:

    # snap --version
    snap    2.52.1
    snapd   2.52.1
    series  16
    ubuntu  21.04
    kernel  5.11.0-40-generic
    

    然后查看可用的快照:

    # snap saved
    Set  Snap    Age    Version  Rev   Size    Notes
    1    docker  2h58m  20.10.8  1125  1.39GB  auto
    

    检查快照是否正常:

    # snap check-snapshot 1
    Snapshot #1 verified successfully.
    

    最后,恢复自动快照:

    # snap restore 1
    Restored snapshot #1.
    

    此时docker ps -a仍然向我展示了我在最新安装后创建的容器,而不是我想要恢复的容器。也许如果我没有创建新容器,它就可以工作。但是我知道至少容器文件已经恢复了,因为我可以在/var/snap/docker/common/var-lib-docker/overlay2/. 这总比没有好。小心snap remove!

    恢复原始容器

    让我回顾一下我是如何进入这种状态的:

    • 跑掉sudo snap remove docker了重要的容器
    • 再次跑去sudo snap install docker安装docker
    • 运行docker-compose up了两个新容器
    • 运行snap restore 1恢复自动快照

    此时我能够找到恢复的容器文件,但docker ps -a仍然没有显示实际的容器。总之,这就是我为取回完整容器所做的工作:

    • 在第二次安装后删除了所有可见的容器和图像,因为我不需要它们
    • 再次删除 dockersudo snap remove docker并注意到自动快照再次发生:"Save data of snap "docker" in automatic snapshot set #2"。
    • 再次恢复第一个快照:snap restore 1

    现在,如果我这样做,docker ps -a我可以再次看到我所有的容器,处于停止状态!但是有一个问题,其中一个无法启动,并显示以下消息:Error: response from daemon: OCI runtime create failed: container with id exists:....

    为了解决这个问题,我发现最简单的方法是docker commit <container-id>使用生成的图像将其作为新容器启动。在我看到它很好之后,我把那个坏掉的扔掉了。一切恢复正常!

    顺便说一句,使用卷将数据持久保存在容器中被认为是一种很好的做法。图像也可以保存到档案中。

    • 3

相关问题

  • 如何运行 snapcraft 网络聊天示例?

  • Ubuntu可以在哪里快照写入数据?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve