最小的容器Ubuntu的图像泊坞窗像

我正在玩LXC。 我的目标是在一个容器中运行一个进程,现在我正在关注在我的容器中运行的进程。

当我在Ubuntu 12.04上创build一个基本的LXC模板时,我已经有了十个进程正在运行(包括cron,ttys,init …)。 当我用Docker或Heroku dynos(使用ps -ef )做同样的事时,我只有我启动的过程。 这导致了2个问题:

这些问题是相当复杂的,我不是在这里寻找一个详细的答案,而只是关于这个工作的一般想法。

你可以在mkimage 文档中find一些关于创build一个基本镜像的基本指令,并且看看源代码的contrib目录中的mkimage -scripts。 最重要的是你使用debootstrap工具来创build一个ubuntu / debian根文件系统,tar这个并导入到docker中。 从零开始构build一个最小的ubuntu精确(12.04 LTS)映像的例子是:

  debootstrap --verbose --variant=minbase --include='iproute,iputils-ping' --arch=amd64 precise /tmp/precise/ `curl -s http://mirrors.ubuntu.com/mirrors.txt | head -1` 

最后一个curl位会select一个接近你的机器位置的ubuntu镜像,你也可以简单地传递一个标准的ubuntu镜像url – 注意这个镜像现在被硬编码到你的新镜像etc/apt/sources.list ,所以您可能需要在包装之前修改它,按照这个方法进行编辑

在docker集装箱内运行stream程的监督是不是你的容器本身的任务 – 他们只负责在孤立的环境中运行任何给定的命令。 守护进程pipe理部分应该发生在你的docker主机上,也就是说你可以为每个你想要的容器写一个upstart作业。