我的开发机器是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 网站 /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