Я искал докер в течение нескольких часов; Я использую 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.
Вы должны использовать 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
Это ограничение способа совместного использования файловой системы 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 / Невозможно изменить разрешения в пределах