Моя машина для разработки — OSX. Я использую boot2docker для запуска docker в процессе разработки (назовем его docker-1). В моем приложении также используются контейнеры docker (так что это docker, работающий внутри docker — назовите его docker-2).
Обычно я использую docker-compose на своем компьютере для разработки, чтобы запустить docker-1. Проблема в том, что когда я запускаю
docker-compose запустить web /bin/bash
а затем в командной строке docker-1 я пытаюсь запустить 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-1 вручную, в обход docker-compose и запускаю его так:
docker run --привилегированный=true -ti веб-сайт /bin/bash
а затем попробуйте запустить докер внутри приглашения, все работает как положено:
запуск сервисного докера
успешно - докер запущен и работает правильно!
что заставляет меня думать, что есть проблема с 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