2017-12-18 20 views
1

ドッカーコンテナとしてdovecotを設定しています。 NFS上でNASにMaildirを保存したい。ドッカーボリュームNFS uid

私はこのようなドッキングウィンドウのボリューム作成しています:Dockerfile

docker volume create \ 
    --driver local \ 
    --opt type=nfs \ 
    --opt o=addr=<ip>,rw \ 
    --opt device=:/vmail \ 
    vmail 

を、私は持っている:

RUN useradd -m -p vmail -s /bin/false vmail 
VOLUME /home/vmail 

とドッキングウィンドウコンテナを実行するために、私が呼ん:

docker run \ 
    -dit \ 
    -p 993:993 \ 
    --mount source=vmail,target=/home/vmail \ 
    my_dovecot 

ですが、結果として次のようになります。

docker: Error response from daemon: chown /var/lib/docker/volumes/vmail/_data: operation not permitted. 

問題はNFSボリュームをマウントする方法とは明らかに関連しています。つまり、--mountステートメントを削除した場合、正常に動作しますが、明らかにNASのMaildirデータにアクセスできません。 これはdovecotMaildirというユーザーにvmailというユーザーとしてアクセスしようとしていることに関連しており、そのユーザーにはNFS共有に関するアクセス許可はありませんが、すべてのユーザーにNFS共有の書き込みアクセス権を与えても、差をつける。

私は、このNFSボリュームをドッキング・コンテナに正しくマウントするためのアドバイスを探しています。その間に

よろしく StHeine

+0

コンテナをrootユーザー 'docker run --user root ... 'として実行して、アクセス権に関するユーザーエラーであるかどうかを確認できます。 – dskow

+0

'my_dovecot'コンテナのDockerfileがどのようなものか分かります。 – larsks

答えて

0

は私が問題を発見しました。この問題を解決するために 、私は/home/vmailディレクトリを作成してからそれを防ぐためにuseraddコマンドで-mを削除する必要がありました:

RUN useradd -p vmail -s /bin/false vmail 
VOLUME /home/vmail 

それが存在する場合、その同じ場所にボリュームをマウント、ドッキングウィンドウは、既存のフォルダをコピーしようとするため、データはボリュームに、chownはボリュームの所有権に、それぞれ割り当てられます。 NFSからのNAS経由のボリュームは適切なuidを持っていませんが、nobody - とchownは失敗します。

ドッカーがこれを行うのを防ぐためにnocopyへの参照が見つかりましたが、docker createステートメントでそれを設定する方法がわかりませんでした。

関連する問題