我知道 Snappy Ubuntu 可以托管 Docker 容器。我的问题是它是否也可以作为 Docker 客户机在容器内运行。
我询问的原因是我在公共 Docker 存储库中找不到任何 Snappy VM 客户容器。
答案1
是的,你可以: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 镜像。例如,我创建了一个snappy_测试图像与xkcd-网络服务器应用程序已安装。以下是Dockerfile
我使用的:
FROM snappy:latest
RUN snappy install xkcd-webserver
EXPOSE 80