2016-12-14 11 views
0

Я начинаю с docker и создаю образ с jupyter и некоторыми библиотеками python. Конечный пользователь должен иметь возможность использовать jupyter и обращаться к определенным каталогам данных хоста через контейнер (права на чтение/запись), но должен быть пользователем без полномочий root. Вот мой dockerfile до сих пор:Создание пользователя без полномочий root в jupyter dockerfile

FROM ubuntu:latest 

RUN apt-get update && apt-get install -y \ 
python-pip 

RUN pip install --upgrade pip && pip install jupyter \ 
pandas \ 
numpy 

RUN useradd -r -g users A && \ 
mkdir /myhome && \ 
chown -R A:users /myhome 

EXPOSE 8888 

WORKDIR /myhome 

CMD ["jupyter", "notebook", "--port=8888", "--no-browser", "--ip=0.0.0.0"] 

Я бегу это, делая docker run -it -p 8888:8888 -u="A" -v /some/host/files:/myhome

Но тогда я получил ошибку jupyter что говорит OSError: [Errno 13] Permission denied: '/home/A' Любая помощь приветствуется. Большое спасибо!

ответ

0

Когда вы запускаете свой контейнер с помощью --entrypoint = bash, вы обнаружите, что домашний каталог/домашний/A вашего пользователя не был создан. Для этого вам нужно добавить флаг -m в команду useradd

Дополнительная информация: вы можете посмотреть проекты докеров-стеков (https://github.com/jupyter/docker-stacks/tree/master/base-notebook и производные изображения). Это похоже на то, что вы пытаетесь сделать, и добавляет другие полезные материалы. Например. при запуске докционированного jupyter вам понадобится «PID 1 reaper»; в противном случае ваши выведенные ядра ноутбуков превратятся в зомби (вы можете использовать Google для этого :-)

Кроме того, при совместном использовании файлов хоста с пользователем, не являющимся пользователем root, в контейнере вам часто необходимо установить UID пользователя вашего контейнера некоторые конкретные значения соответствуют хост-системе, поэтому разрешения файловой системы правильно совпадают. Это также поддерживает контейнеры для докеров-стеков. Их Dockerfiles могут по крайней мере помочь в качестве шаблона для запуска вашего собственного.

Смежные вопросы