Docker卷为以Kerberized NFS共享抛出“无效参数”

时间:2019-12-16 16:18:11

标签: docker kerberos docker-swarm nfs mit-kerberos

配置如下

我有以下现有的virtualbox主机

kerberos.swarm.local - MIT Kerberos server
nfs.swarm.local - NFS server w/ working Kerberos authentication
worker.swarm.local - Server w/ working Kerberos authentication & Docker Swarm installed

我成功配置并测试了我的Kerberized NFS共享。即可以从worker.swarm.local主机安装它。

注意:要实现此目的,我已经在主机上创建了访问文件/etc/krb5.conf和/etc/krb5.conf,并且启用并启动了Systemd服务nfs-client.target和rpc-gssd服务。

mount -t nfs4 -o addr=nfs.swarm.local,rsize=8192,wsize=8192,tcp,timeo=14,soft,nolock,nfsvers=4 nfs.swarm.local:/srv/nfs4 /mnt/nfs4

我在worker.swarm.local中创建了一个NFS卷,如下所示:

docker volume create --driver local --opt type=nfs4 --opt device=:/srv/nfs4 --opt o=addr=nfs.swarm.local,rsize=8192,wsize=8192,tcp,timeo=14,soft,nolock,sec=krb5,nfsvers=4 nfs-share-cli

然后我使用先前定义的NFS卷部署了Docker Swarm堆栈

version: "3.5"
services:
  workspace:
    image: busybox
    command: tail -f /dev/null
    restart: always
    volumes:
      - type: volume
        source: nfs-share-cli
        target: /mnt/nfs
        volume:
          nocopy: true
volumes:
  nfs-share-cli:
    external: true

但是,部署的容器仍在继续枯竭。 当我在Docker守护进程(dockerd)上运行strace时,看到以下错误

mount(":/srv/nfs4", "/srv/docker/volumes/nfs-share-cli/_data", "nfs4", 0, "addr=nfs.swarm.local,rsize=8192,wsize=8192,tcp,timeo=14,soft,nolock,sec=krb5,nfsvers=4") = -1 EINVAL (Invalid argument)

所以问题是为什么我的Kerberized NFS共享不能作为Docker卷工作?

0 个答案:

没有答案