2017-12-18 17 views
1

도커 컨테이너로 dovecot을 설정하는 중입니다. NFS에 NFS를 통해 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 공유에 대한 쓰기 권한을 부여한다고해도, 차이를 만들어라.

이 도킹 장치를 도커 컨테이너에 올바르게 장착하기위한 조언을 찾고 있습니다. 그 동안

감사 StHeine

+0

루트 사용자'docker run --user root ... '로 컨테이너를 실행하여 권한에 대한 사용자 오류인지 확인할 수 있습니다. – dskow

+0

당신의'my_dovecot' 컨테이너에 대한 Dockerfile이 어떻게 보이는지 알면 도움이 될 것입니다. – larsks

답변

0

나는이 문제를 발견했다.

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

가 존재하는 경우 때문에, 같은 장소로 볼륨을 장착, 고정 표시기는 기존의 폴더를 복사하려고 : 는이 문제를 해결하기 위해, 나는 /home/vmail 디렉토리를 생성하는 것을 방지하기 위해 useradd 명령에 -m을 제거했다 데이터를 볼륨에 넣고 chown 볼륨의 소유권을 확인하십시오. 볼륨이 NAS에서 NFS를 통해 제공된다는 사실 때문에 적절한 uid가 없지만 nobody - 및 chown이 실패합니다.

도커가 이것을 방지하기 위해 nocopy에 대한 참조를 찾았지만 docker create 문에서 설정하는 방법을 찾지 못했습니다.