Koding是一个协作编程环境,它为多个用户创建一个虚拟机来协作进行软件开发.他们使用Linux Containers来虚拟化机器.我无法在其上安装docker:
tiagoboldt@vm-2:~$ sudo docker build -t mongo .
[sudo] password for tiagoboldt:
Uploading context 645.1 kB
Uploading context
Step 0 : FROM ubuntu:latest
Pulling repository ubuntu
9cd978db300e: Error pulling image (latest) from ubuntu, endpoint: https://cdn-registry-1.docker.io/v1/, Driver aufs failed to get image rootfs 6170bb7b0ad1003a827e4dc5253ba49f6719599eac485db51eaafd507c13c311:
9cd978db300e: Error pulling image (latest) from ubuntu, Driver aufs failed to get image rootfs 6170bb7b0ad1003a827e4dc5253ba49f6719599eac485db51eaafd507c13c311: permission denied
6170bb7b0ad1: Error downloading dependent layers
2014/02/28 03:32:55 build: pull: Could not find repository on any of the indexed registries.
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议安装docker的解决方法吗?
vaa*_*aab 18
是的,docker可以在linux容器中运行.
但是docker只能在lxc执行驱动程序和无限制的 lxc中运行.
那么,这里是如何在LXC中获得docker:
确保您在LXC 的文件中lxc.aa_profile = lxc-container-default-with-nesting(如果不能使用此配置文件,请尝试lxc.aa_profile = unconfined),config以确保它不会被阻止apparmor.有关更多信息,请访问(或修改)文件/etc/apparmor.d/lxc.
您需要在容器中安装lxc.例如,如果您在ubuntu下,请在容器中运行apt-get install lxc.
确保使用--exec-driver=lxc参数调用docker守护程序.您可以通过发布manualy来测试它docker -d --exec-driver=lxc.在ubuntu中,要在启动时使用参数,只需编辑/etc/default/docker并确保您拥有该行:
apparmor
请按照此主题进行更新:https://github.com/docker/docker/issues/6783
如果您需要排除故障:
docker -d ...主机的kern日志中的日志.lxc手动启动以获得输出.注意:您可能无法通过判断其他人的答案来主持修改Koding上的LXC apparmor脚本,无论如何,如果您是LXC提供商,这个如何仍然感兴趣,它会回答您在您的问题中提出的更一般的问题.问题的标题,这可能会在更一般的场景中吸引人们(就像我一样).
对的,这是可能的.但是,您不能将aufs分区嵌套在aufs中.您需要安装其他系统或使用其他存储后端.
你可以看一下docker的makefile和hack/dind.您需要特权模式才能这样做.
最简单的尝试方法是make shell在容器中执行一次,您可以启动一个新的docker守护进程:)
编辑:我试过Koding,但确实不可能.您在其容器中没有特权,因此您无法启动新的docker.
这是同一艘船上其他人的完整指南.
启动终端并开始输入..
docker run -i -t --privileged -v /var/lib/docker ubuntu bash
apt-get update && apt-get install -y docker.io
service docker.io start
ln -s /usr/bin/docker.io /usr/local/bin/docker
docker run -i -t ubuntu bash
Run Code Online (Sandbox Code Playgroud)
现在你应该在另一个容器内的容器内.
备注:
--privileged外部容器上需要该标志才能实现此目的.-v /var/lib/docker以避免creack提到的限制.ln -s /usr/bin/docker.io /usr/local/bin/docker只是创建一个符号链接,以便我们可以键入docker而不是docker.io| 归档时间: |
|
| 查看次数: |
21386 次 |
| 最近记录: |