我可以在 Docker 中以客户机身份运行 Snappy Ubuntu Core 吗?

我可以在 Docker 中以客户机身份运行 Snappy Ubuntu Core 吗?

我知道 Snappy Ubuntu 可以托管 Docker 容器。我的问题是它是否也可以作为 Docker 客户机在容器内运行。

我询问的原因是我在公共 Docker 存储库中找不到任何 Snappy VM 客户容器。

答案1

是的,你可以:Snappy 只是 Ubuntu 的精简版,Ubuntu 可以在 Docker 中运行。Snappy 没有出现在公共 Docker 存储库中,这意味着你必须手动操作。

  1. 首先,获取最新的图像:

    wget http://cdimage.ubuntu.com/ubuntu-core/preview/ubuntu-core-alpha-02_amd64-virt.img
    

    该文件是用于 QEMU/KVM 的 QCOW2 映像,但我们也可以提取其内容用于 Docker。

  2. 为了访问 QCOW2 映像内的文件,您需要qemu-nbd,因此请安装它并运行:

    qemu-nbd -c /dev/nbd0 ubuntu-core-alpha-02_amd64-virt.img
    

    此命令将创建一个名为 的“虚拟磁盘” /dev/ndb0,其中包含名为 的“虚拟分区” /dev/ndb0pX。用于fdisk -l /dev/nbd0了解 QCOW2 映像内有哪些分区。

  3. 您感兴趣的分区是/dev/ndb0p3,因此挂载它:

    mount /dev/ndb0p3 /somewhere
    
  4. 您快完成了!只需关注Docker 的自定义基础镜像指南

    tar -C /somewhere -c . | docker import - snappy
    

现在,您可以在该基础镜像之上创建 Snappy 镜像。例如,我创建了一个snappy_测试图像与xkcd-网络服务器应用程序已安装。以下是Dockerfile我使用的:

FROM snappy:latest
RUN snappy install xkcd-webserver
EXPOSE 80

相关内容