ошибка при запуске докера внутри докера

Моя машина для разработки — 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


person hackerhasid    schedule 21.05.2015    source источник
comment
похоже, я могу заставить это работать, если я перезапущу хост. в конце концов, он снова перестанет работать.   -  person hackerhasid    schedule 27.05.2015
comment
Какую версию docker-compose вы используете?   -  person Kevin Simper    schedule 07.07.2015


Ответы (1)


Не уверен, что это будет исправлено в OSX, но при выполнении чего-то подобного с помощью инструмента CI, который должен был запускать докер в докере, теперь это было сопоставление тома.

Попробуйте добавить следующее в команду запуска докера:

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

person Ric_Harvey    schedule 05.11.2015