Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 在运行容器内安装Lustre不工作(已添加所有功能)_Docker_Mount_Linux Capabilities_Lustre - Fatal编程技术网

Docker 在运行容器内安装Lustre不工作(已添加所有功能)

Docker 在运行容器内安装Lustre不工作(已添加所有功能),docker,mount,linux-capabilities,lustre,Docker,Mount,Linux Capabilities,Lustre,我们正在尝试将lustre文件系统安装在运行的容器中,并且已经通过以priviledge模式运行的容器成功地完成了这项工作 然而,对于那些在非特权模式下运行的容器,装载lustre失败,即使linux提供的所有功能都包括在内 然后 “priviledged:True”和“cap_add:all capabilites”之间的区别是什么 当所有功能都添加到容器中时,为什么安装lustre仍然失败 装载错误 非特权模式容器: version: "3" services: aia

我们正在尝试将lustre文件系统安装在运行的容器中,并且已经通过以priviledge模式运行的容器成功地完成了这项工作

然而,对于那些在非特权模式下运行的容器,装载lustre失败,即使linux提供的所有功能都包括在内

然后

  • “priviledged:True”和“cap_add:all capabilites”之间的区别是什么
  • 当所有功能都添加到容器中时,为什么安装lustre仍然失败
  • 装载错误

    非特权模式容器:

    version: "3"
    services:
    aiart:
    cap_add:
      - AUDIT_CONTROL
      - AUDIT_READ
      - AUDIT_WRITE
      - BLOCK_SUSPEND
      - CHOWN
      - DAC_OVERRIDE
      - DAC_READ_SEARCH
      - FOWNER
      - FSETID
      - IPC_LOCK
      - IPC_OWNER
      - KILL
      - LEASE
      - LINUX_IMMUTABLE
      - MAC_ADMIN
      - MAC_OVERRIDE
      - MKNOD
      - NET_ADMIN
      - NET_BIND_SERVICE
      - NET_BROADCAST
      - NET_RAW
      - SETGID
      - SETFCAP
      - SETPCAP
      - SETUID
      - SYS_ADMIN
      - SYS_BOOT
      - SYS_CHROOT
      - SYS_MODULE
      - SYS_NICE
      - SYS_PACCT
      - SYS_PTRACE
      - SYS_RAWIO
      - SYS_RESOURCE
      - SYS_TIME
      - SYS_TTY_CONFIG
      - SYSLOG
      - WAKE_ALARM
    
    image: test_lustre:1.1
    #privileged: true
    ports:
      - "12345:12345"
    volumes:
      - /home/wallace/test-lustre/docker/lustre-client:/lustre/lustre-client
    

    你试过了吗?莫:没有限制的

    version: "3"
    services:
      aiart:
        cap_add:
        - SYS_ADMIN
        image: test_lustre:1.1
        security_opt:
        - apparmor:unconfined
        ports:
        - "12345:12345"
        volumes:
          - /home/wallace/test-lustre/docker/lustre-client:/lustre/lustre-client
    

    如果这样做有效,那么试着编写一个定制的apparmor配置文件来满足您的需要,因为我想,unconfined会不那么安全:

    --privileged
    所有功能的区别在于,
    --privileged
    参数删除了cgroup controller强制实施的所有限制,并在为所有设备提供访问权限的同时禁用了安全性附魔。特权容器真正成为主机操作系统的一部分,甚至可以访问AppArmor和SELinux配置,这些配置可能不会应用,例如SELinux标签

    当使用
    --privileged
    标志时,它不会对底层容器强制执行任何额外的安全性,内核文件系统也不会以只读方式装入容器中。SECCOMP筛选也被禁用。不过,您无法获得比当前名称空间所允许的更多的功能,例如,如果您正在运行无根守护进程

    功能是调整root权限的一种方式,但在执行容器时仍会应用一些安全附魔

    红帽的一篇博文在


    正如在另一个答案中指出的那样,在这种情况下,AppArmor可能是问题所在,通过在运行容器时使用
    --security opt AppArmor:unconfined
    标志,可以进行装载。但是,这只能暂时使用。

    在尝试装入容器之前,是否已在主机中加载Lustre内核模块?控制台上有消息吗?是的,从主机和在特权模式下运行的容器中装载成功。只有在正常模式下运行的容器才会失败。我已经发布了包含错误消息的图片@lustronepl添加为非特权容器调用运行的确切命令。很难评估“数十种功能”的实际含义。添加了yaml file@olesyabolobova您的答案是正确的,apparmor:unconfined config有效。但我仍然不知道我的问题的答案,同时niklas的帖子也给出了答案。所以我接受了他的回答。