在docker

时间:2015-05-21 14:52:38

标签: docker boot2docker docker-compose

我的开发机器是OSX。我使用 boot2docker 为我的开发运行 docker (调用此 docker-1 )。我的应用程序还使用 docker 容器(所以它是在docker中运行的docker - 调用此 docker-2 )。

通常我在开发计算机上使用 docker-compose 来启动 docker-1 。问题是,当我运行

  

docker-compose运行web / bin / bash

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

  

服务码头启动

该服务似乎开始,创建一个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 run --privileged = true -ti website / bin / bash

然后尝试在提示符内启动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

1 个答案:

答案 0 :(得分:0)

不确定这是否会在OSX上修复,但是当使用需要在docker中运行docker的CI工具执行此类操作时,现在可以进行卷映射。

尝试将以下内容添加到docker run命令:

  

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