我可以在Docker中作为访客运行Snappy Ubuntu Core吗?
我知道Snappy Ubuntu可以托管Docker容器。 我的问题是它是否也可以作为Docker来宾在容器内运行。
我问的原因是我在公共Docker存储库中找不到任何Snappy VM来宾容器。
是的,你可以:Snappy只是Ubuntu的简化版本,而Ubuntu在Docker中运行。 事实上,Snappy没有出现在公共Docker存储库中,这意味着您必须手动执行操作。
-
首先,获取最新图像:
wget http://cdimage.ubuntu.com/ubuntu-core/preview/ubuntu-core-alpha-02_amd64-virt.img
此文件是用于QEMU / KVM的QCOW2映像,但我们也可以为Docker提取其内容。
-
要访问QCOW2映像中的文件,您需要
qemu-nbd
,所以安装它并运行:qemu-nbd -c /dev/nbd0 ubuntu-core-alpha-02_amd64-virt.img
此命令将创建名为
/dev/ndb0
的“虚拟磁盘”,其中“虚拟分区”名为/dev/ndb0pX
。 使用fdisk -l /dev/nbd0
可以了解QCOW2映像中的分区。 -
您感兴趣的分区是
/dev/ndb0p3
,所以安装它:mount /dev/ndb0p3 /somewhere
-
你差不多完成了! 只需关注自定义基本映像上的Docker指南 :
tar -C /somewhere -c . | docker import - snappy
现在,您已准备好在该基本图像上创建Snappy图像。 例如,我创建了一个安装了xkcd-webserver应用程序的snappy_test映像。 这是我使用的Dockerfile
:
FROM snappy:latest RUN snappy install xkcd-webserver EXPOSE 80