Docker (NGINX, PHP, mySQL) и Windows — права доступа к файлам

Я искал докер в течение нескольких часов; Я использую Windows 8.1 в качестве хост-машины и VirtualBox с boot2docker.

Это мой docker-compose.yml:

mysql:
image: mysql
ports:
- "6603:3306"environment:
MYSQL_ROOT_PASSWORD: mysql
MYSQL_USER: mysql
fpm:
image: php:7.0.2-fpm
volumes:
- /c/Users/Administrator/www:/var/www/html
ports:
- "9000:9000"links:
- mysql
nginx:
image: nginx
ports:
- "80:80"- "443:443"volumes:
- /c/Users/Administrator/www:/var/www/html
links:
- fpm

Это работает нормально (я могу перейти на свой IP-адрес докера и увидеть страницу приветствия nginx); хотя, когда я запускаю mkdir, например (через php), он выдаст ошибку относительно разрешений Windows.

0

Решение

Вы должны использовать volumes тег вместо volumes_from

  • volumes может монтировать каталоги с хост-машины в контейнер
    а также
  • volumes_from монтирует каталоги из других сервисов или контейнеров

Пожалуйста, посмотрите на Докер-составить файл документации

И ваш файл docker-compose должен выглядеть так:

fpm:
image: php:7.0.2-fpm
volumes:
- /c/Users/Administrator/www:/var/www/html
ports:
- "9000:9000"links:
- mysql
nginx:
image: nginx
ports:
- "80:80"- "443:443"volumes_from:
- fpm
links:
- fpm
0

Другие решения

Это ограничение способа совместного использования файловой системы Windows с виртуальной машиной VirtualBox с использованием гостевых дополнений VirtualBox.

Файлы, совместно используемые с виртуальной виртуальной машиной VirtualBox, принадлежат пользователю «докер» и группе «персонал» внутри виртуальной машины. Процессы внутри ВМ (и контейнеры) не могут менять владельца этих файлов.

В качестве обходного пути вы можете попробовать запустить свой контейнер как uid/gid из этих файлов (--user 1000:50);

-u, --user=""                 Username or UID (format: <name|uid>[:<group|gid>])

—ulimit = [] Параметры Ulimit

Существует также открытая проблема на трекере GitHub, в которой упоминаются некоторые обходные пути; # 581 Только root может записывать в тома OSX / Невозможно изменить разрешения в пределах

0

По вопросам рекламы [email protected]