根据this github issue的说法,应该可以使用Docker0.6或更高版本启动一个完整的容器,包括Upstart、cron等,但是我该怎么做呢?
我早就料到了
docker run -t -i ubuntu /sbin/init的工作原理就像
lxc-start -n ubuntu /sbin/init我将看到一个登录屏幕,但它却什么也没有显示。我也尝试过使用ssh访问它,但是没有成功。我使用的是Docker索引中的默认ubuntu镜像。
发布于 2013-11-20 21:03:58
对于我来说,0.6.6版本的docker run ubuntu /sbin/init似乎工作得无懈可击。你不会看到登录界面,因为Docker只管理这个过程。相反,您可以使用docker ps -notrunc获取完整的lxc容器ID,然后在该容器中以根用户身份使用lxc-attach -n <container_id> run bash。sshd没有安装在容器中,所以您不能ssh到它。
发布于 2016-02-05 21:37:13
您可以使用ubuntu-upstart镜像:
docker run -t -i ubuntu-upstart:14.04 /sbin/init
虽然这个解决方案不幸被弃用,但如果你需要一个像普通Ubuntu 12.04、14.04或14.10 (更改为:14.04位)系统那样‘驱动’的完整操作系统容器,它已经足够好了。如果未指定版本,则默认为14.04。我没有大量使用它,在安装更复杂的包(例如dbus!)时遇到了一些问题,但它可能对您有用。
遗憾的是,Ubuntu在最近的版本中切换到了systemd。谷歌显示,似乎正在进行的工作是让systemd在docker容器中工作,而不需要提升权限,但它似乎还没有完全准备好进入黄金时段。希望它能在16.04成为LTS时准备就绪。
另一种选择当然是使用phusion/baseimage,但它有自己的启动服务的方法。似乎更适合于最小的多进程容器。
https://stackoverflow.com/questions/19332662
复制相似问题