2015-11-18 3 views
0

На моем ноутбуке MacOS я установил файл в моем недавно созданный контейнере с помощью:Mount файл в режиме чтения/записи для всех в Докер

docker run --name mediawiki --link mysql:mysql -p 80:80 -v /Users/poiuytrez/Downloads/LocalSettings.php:/var/www/html/LocalSettings.php 
--rm poiuytrez/mediawiki:1.25.3 

Однако апач, кажется, есть проблемы, чтобы прочитать файл. Мы можем узнать, выполнив команду Баша в контейнере, что разрешения на чтение не применяются для всех:

[email protected]:/var/www/html# ls -l LocalSettings.php 
-rw-r----- 1 1000 staff 4857 Nov 18 15:44 LocalSettings.php 

Я попробовал один и тот же процесс на грузчике, установленный на Linux Debian 8 машины и я получаю:

[email protected]:/var/www/html# ls -l LocalSettings.php 
-rw-r--r-- 1 www-data www-data 4858 Nov 19 13:32 LocalSettings.php 

, который намного лучше для меня.

Как добавить разрешения на чтение для всех без выполнения chmod a + r на boot2docker/dockermachine?

Я использую Docker 1.8.3

ответ

0

В Докер-машины и boot2docker ваш каталог/Users отображаются внутри виртуальной машины на том же пути, так что, когда вы карту громкость, как:

-v /Users/poiuytrez/Downloads/LocalSettings.php:/var/www/html/LocalSettings.php 

Фактически это каталог boot2docker, который вы монтируете внутри контейнера, поэтому есть 2 уровня.

Вы можете видеть, что LocalSettings.php владелец не существует внутри контейнера, так что, когда вы ls -l идентификатор пользователя показываются в вашем случае Идентификатор_пользователя 1000 и группа сотрудников.

-rw-r----- 1 1000 staff 4857 Nov 18 15:44 LocalSettings.php 

1000 сотрудников

Try, чтобы увидеть владельца и разрешения внутри boot2docker ВМ с boot2docker ssh или docker-machine ssh <you-machine-name> и ls -l внутри него.

Другой подход заключается в том, чтобы добавить пользователя с идентификатором 1000 внутри вашего контейнера и запустить веб-сервер в качестве этого пользователя.

Вы также можете добавить скрипт fix-permission.sh в команду запуска контейнера.

В дорожной карте Докера есть некоторые улучшения в пространстве имен пользователей, которые появятся в следующих выпусках. Я видел эту статью несколько дней назад: http://integratedcode.us/2015/10/13/user-namespaces-have-arrived-in-docker/ Надеюсь, она решает эту проблему.

0

LocalSettings.php был -rw-р ----- на моем Mac. Так же было и в контейнере ...