Может кто-нибудь сказать мне, как заставить mount
распознавать -o sec=krb5
как допустимый параметр в контейнере Docker или Dockerfile?
Требуется ли для Ubuntu 16.04 перезагрузка для mount
для понимания Kerberos?Там, кажется, нет никакой информации об этом онлайн.Я нахожу только статьи о Red Hat, которые бесполезны.
Ниже приведен докер-файл, который я использовал, чтобы попытаться выяснить это.
FROM ubuntu:16.04
ADD krb5.conf krb5.keytab /etc/
RUN apt-get update && apt-get install -y krb5-user nfs-common
Я запускаю новый образ вконтейнер, использующий следующее.
sudo docker run --name test_krb --privileged -it test_krb /bin/bash
Внутри контейнера я могу использовать kinit
без каких-либо проблем, поэтому я знаю, что Kerberos работает.Однако mount
по какой-то причине этого не понимает.
Ниже приведена команда монтирования, которую я выполнял внутри контейнера вместе с выводом.
$ mount -vo sec=krb5,port=2050 <hostname>:/ /mnt/nfs
mount.nfs: timeout set for Thu Sep 20 04:06:45 2018
mount.nfs: trying text-based options 'sec=krb5,port=2050,vers=4,addr=X.X.X.X,clientaddr=X.X.X.X'
mount.nfs: mount(2): Invalid argument
mount.nfs: an incorrect mount option was specified
Я пробовал это на виртуальной машине, выполняющей те же команды, и она не удалась, так какхорошо, пока я не перезагрузил ВМ.Похоже, что перезагрузка необходима для этой работы, но я не уверен, как это сделать в контейнере / файле Docker.
Спасибо