我想在redhat中设置一个容器。容器也应该运行与主机相同的redhat版本。在探索这些时,我遇到了virsh和码头工。 Virsh支持基于主机的容器并与主机共享用户空间。这里我对用户空间感到困惑。无论是文件系统空间还是其他一些东西。任何人都可以澄清我呢?还可以在哪些场景/案例中使用virsh(基于主机的容器),以便我可以得出结论:是否更好使用virsh或docker。在我的情况下,我需要在redhat主机中设置一个redhat容器,并在每个容器中运行同一进程的多个实例。容器应该在不使用网络接口的情况下相互交换数据。使用virsh创建共享容器和主机用户空间
回答
当前的内核还不支持用户命名空间。 这是当前集装箱化解决方案的已知限制。不幸的是,在最新的内核版本(从内核3.8开始)http://kernelnewbies.org/Linux_3.8中实现了用户名空间,尽管它在许多主流发行版中尚未启用。
这是现在容器最强的限制之一,如果您是容器中的根(ID 1),则您是操作容器的机器的根。
这是一个影响任何基于LXC的产品的问题,尽管强烈推动解决这个问题。这实际上是一件需要的事情!
替代方案是艰苦的Selinux监禁或与低级用户帐户和分配不同的用户每个容器。
从Libvirt库文件https://libvirt.org/drvlxc.html:
用户和组隔离 如果客户配置没有列出任何ID映射,然后在容器内使用的用户ID和组ID将匹配那些在容器外部使用。另外,与容器中的进程相关联的功能将推断它们对于主机中的进程相同的特权。这对安全性有明显的影响,因为容器内的root用户将能够访问容器可见的任何由root拥有的文件,并且执行或多或少的任何特权内核操作。在没有sVirt额外保护的情况下,这意味着容器内的root用户实际上和主机中的root用户一样强大。没有根用户的安全隔离。
引入了ID映射工具以允许更严格地控制容器内用户的特权。它允许应用程序定义诸如“容器映射中的用户ID 0到主机中的用户ID 1000”之类的规则。另外,与功能相关的特权有所减少,因此它们不能用于从容器环境中退出。对用户命名空间的完整描述超出了本文的范围,但是LWN对这个主题有很好的描述。从libvirt的角度来看,要记住的关键是为容器XML配置中的用户和组定义一个ID映射,使libvirt激活用户命名空间功能。
这应该有助于澄清:http://rhelblog.redhat.com/2015/07/29/architecting-containers-part-1-user-space-vs-kernel-space/
这听起来像你真的想用多克与-v绑定安装共享数据。这是一个未来一天的文章:-)
- 1. 在共享主机Linux帐户上使用共享内存
- 2. 共享主机 - 捕捉用户的IP
- 3. 使用共享主机创建定时事件?
- 4. 如何使用网络共享创建虚拟主机?
- 5. 如何使用vSphere为主机创建共享文件夹?
- 6. 如何使用mmap共享用户空间和内核线程
- 7. 如何在hostgator共享主机帐户中使用php创建数据库?
- 8. 如何在主机和容器之间双向共享文件的内容?
- 9. 用户之间Drupal内容共享
- 10. 使用docker-py运行和共享容器中的主机文件夹
- 11. php共享主机和mod_security
- 12. iOS在主应用程序和共享分机之间共享.h文件
- 13. 用户空间和内核线程之间的共享内存
- 14. ASP.net,如何访问远程机器并创建用户帐户并创建和共享文件夹
- 15. 如何在主机操作系统和docker容器之间共享文件夹
- 16. 使用共享类型创建Web服务和客户端
- 17. 云主机共享和专用主机的局限性
- 18. 使用Virtual PC 2007在虚拟机和主机之间共享文件
- 19. 在iOs 10和WatchOS 3(共享容器)之间共享数据
- 20. cPanel主题和共享主机
- 21. 在共享主机
- 22. 在共享主机
- 23. 在共享主机
- 24. 共享Ip主机
- 25. 在共享空间上使用Composer PHP
- 26. 在Java和R应用程序之间使用同一个主机共享SparkContext
- 27. CloudKit共享私人用户之间的容器
- 28. 时间共享和空间共享algotitms之间的区别
- 29. 在Go主机之间共享变量
- 30. 如何使用命名卷将数据从主机共享到容器?
我相信他问共享用户空间与否,与用户的命名空间混淆:http://rhelblog.redhat.com/2015/07/07 /最新-下一对的容器用户名字空间/ – fatherlinux 2015-07-30 19:52:59