根据this github issue,应该可以使用Docker 0.6或更高版本的Upstart,cron等启动一个完整的容器,但我该怎么做?
我在期待
docker run -t -i ubuntu /sbin/init
就像
一样lxc-start -n ubuntu /sbin/init
我会得到一个登录屏幕,但它没有显示任何内容。我也尝试使用ssh访问它,但没有运气。我正在使用Docker索引中的默认ubuntu映像。
答案 0 :(得分:22)
docker run ubuntu /sbin/init
对我来说似乎完美无缺0.6.6。您将无法获得登录屏幕,因为Docker仅管理该过程。相反,您可以使用docker ps -notrunc
获取完整的lxc容器ID,然后在该容器中以root身份使用lxc-attach -n <container_id>
run bash。 sshd没有安装在容器中,所以你不能ssh到它。
答案 1 :(得分:1)
您可以使用ubuntu-upstart图片:
docker run -t -i ubuntu-upstart:14.04 /sbin/init
虽然不幸的是,不推荐使用此解决方案,但如果您需要一个完整的操作系统容器,那就足够了。就像今天普通的Ubuntu 12.04,14.04或14.10(改变:14.04位)系统一样。如果未指定版本,则默认为14.04。我没有大量使用它,并且在安装更复杂的软件包时遇到了一些问题(例如dbus!),但它可能适合你。
Alas Ubuntu已在最近的版本中切换到systemd。谷歌搜索显示,似乎正在进行的工作,使systemd容器中的systemd工作,而不需要提升权限,但它似乎没有准备黄金时间。希望16.04成为LTS时它会准备好。
另一种选择当然是使用phusion / baseimage,但它有自己的方法来启动服务。似乎更适合最小的多工艺容器。