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 / 问题 / 913057
Accepted
hatterman
hatterman
Asked: 2017-05-09 05:41:36 +0800 CST2017-05-09 05:41:36 +0800 CST 2017-05-09 05:41:36 +0800 CST

如何打开现有的 LXD 容器?

  • 772

我安装了 Ubuntu 16.04,xfce 桌面值得。我已经安装了 LXD,我的图像和容器在我的第二个大驱动器上,并带有指向配置的所述图像和容器的符号链接/var/lib/lxd/。一切都按预期工作。

我现在已经在一个新的驱动器上重新安装了 Ubuntu 16.04,它的价值是 Mate 桌面。我已经安装了 LXD 并/var/lib/lxd在我的大驱动器上创建了指向我的图像和容器文件夹的符号链接 (in)。

使用 lxc list 时,我的图像和容器都没有列出(因此无法启动和使用它们)。

关于我需要做些什么来让我新安装的 LXD 使用我预先存在的图像和容器的任何指示?

lxc
  • 2 2 个回答
  • 1502 Views

2 个回答

  • Voted
  1. Best Answer
    hatterman
    2017-05-10T01:12:37+08:002017-05-10T01:12:37+08:00

    对于任何感兴趣的人来说,缺少的部分是我必须重新使用现有的 lxd 数据库,lxd.db.

    因此,我在全新安装时使用现有的 LXD 容器的步骤是:-

    安装 LXD

    sudo apt-get install lxd
    

    删除containers和images目录

    sudo rm -rf /var/lib/lxd/containers
    sudo rm -rf /var/lib/lxd/images
    

    创建指向我预先存在的目录的符号containers链接images。

    sudo ln -s /media/sda10/lxd/containers /var/lib/lxd/containers
    sudo ln -s /media/sda10/lxd/images /var/lib/lxd/images
    

    挂载我的原始安装分区并将 lxd.db 文件从我的原始安装复制到我的新安装

    sudo cp /mnt/var/lib/lxd/lxd.db /var/lib/lxd/lxd.db
    

    当我列出它们并按预期运行时,我的容器现在会显示出来。

    注意:我在多个分区上进行了多次安装,当新版本的 Ubuntu 可用时,我会在它们之间跳跃,并且在我满意之前不要删除旧版本。这真的很容易做到,而且刚刚成为第二天性。

    我知道这不是常见的做法,但这次它(再次)拯救了我的培根。对于那些不这样做的人,lxd.db建议对文件进行备份。

    编辑:进一步阅读https://insights.ubuntu.com/2016/04/13/lxd-2-0-remote-hosts-and-container-migration-612/表明使用遥控器也很容易LXD 主机,只需在主机之间移动容器。

    在这种特殊情况下,这不是我的解决方案,但它是一本很好的读物,展示了一种非常简单的容器迁移方法。

    • 3
  2. Jonathan Y.
    2017-05-10T12:34:28+08:002017-05-10T12:34:28+08:00

    由于我的评论包含一些拼写错误,我将回顾一些将现有容器(其存储可用)导入新数据库的建议。

    首先,如果想要复制 LXD 的整个实例(通过基本上获取所有容器的存储,加上来自 的数据库/var/lib/lxd),有(可以说)更简单的选择。此外,如果旧实例仍在运行并且可通过网络访问,则更本机的方法是将其定义为远程,如精彩的 Ubuntu Insights LXD 2.0:博客文章系列中的远程主机和容器迁移一章中所述。


    现在,该系列的另一章中描述的一种方法(同样,仅在旧实例仍在运行时才可行)是使用

    lxc publish <my-container>@<snapshot> <my-image-name>
    

    然后将其导出到 tarballs

    lxc image export <my-image-name> /path/to/directory
    

    生成的 tarball 可以使用

    lxc image import <metadata-tarball> <rootfs-tarball> --alias <my-image-name>
    

    正如 OP 在评论中所说,这是一项相当多的工作。更严重的是,如果由于某种原因您无法运行旧实例,它会失败。

    从 2.7 版开始,LXD 将backup.yaml文件存储在每个容器的存储空间 (at /var/lib/lxd/containers/<my-container>) 中,允许从副本中导入容器,使用lxd import(参见LXD 备份策略和这个GitHub 问题)。注意lxd; 这不同于lxc image import.

    根据LXD 新闻页面,我认为可以通过简单地将容器的存储移动到/var/lib/lxd/containers目录中并运行

    lxd import <my-container>
    

    然而,由于 Xenial 官方存储库目前提供 LXD 的 2.0.9 版本,我还没有测试最后一部分。

    • 1

相关问题

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