在docker里面运行docker的错误

我的开发机器是OSX。 我使用boot2docker为我的开发运行docker (称为docker -1 )。 我的应用程序也使用docker集装箱(所以它是在docker运行的docker – 调用这个docker-2 )。

通常我在我的开发机器上使用docker-compose来启动docker-1 。 问题是,当我跑步

docker-compose运行web / bin / bash

然后在docker-1 bash提示符下尝试启动docker:

服务docker开始

该服务似乎开始,创build一个PID文件,但死亡。 /var/log/docker.log内容如下:

time="2015-05-21T12:40:23Z" level=warning msg="Udev sync is not supported. This will lead to unexpected behavior, data loss and errors" time="2015-05-21T12:40:23Z" level=error msg="There are no more loopback devices available." time="2015-05-21T12:40:23Z" level=info msg="+job serveapi(unix:///var/run/docker.sock)" time="2015-05-21T12:40:23Z" level=info msg="Listening for HTTP on unix (/var/run/docker.sock)" time="2015-05-21T12:40:23Z" level=fatal msg="Shutting down daemon due to errors: error intializing graphdriver: loopback mounting failed"

所以起初我以为这是docker问题。 但是,当我手动启动docker-1 – 绕过docker-compose并运行它,如:

docker运行–privileged = true -ti网站/ bin / bash

然后尝试在提示符内启动Docker,一切都按预期工作:

服务docker开始

成功 – docker已启动并正常运行!

这让我相信docker-compose存在一个问题,或者更可能是我的设置有问题。 但我已经阅读了手册,没有看到任何引起我注意的事情。

泊坞窗,compose.yml

db: image: postgres ports: - "5432" redis: image: redis ports: - "6379" web: privileged: true build: . volumes: - .:/app environment: - A=b ports: - "3001:3000" links: - db - redis

不知道这是否会修复在OSX上,但是当使用一个需要在docker中运行docker的CI工具来做这样的事情时,现在是一个卷映射。

尝试添加以下内容到您的docker运行命令:

-v /var/run/docker.sock:/var/run/docker.sock