如果我以特權模式運行容器,它是否具有所有內核功能,還是需要單獨添加它們?特權容器和功能
特權容器和功能
回答
以特權模式運行確實爲容器提供了所有功能。 但它是很好的做法,總是給一個容器,它需要 的最低要求,如果你看看碼頭工人文檔它們也指該標誌
全集裝箱能力(--privileged)
的 - 特權標誌賦予容器所有的功能,並且還提升了設備cgroup控制器強制實施的所有限制。換句話說,容器可以做主機可以做的幾乎所有事情。這個標誌存在允許特殊的用例,比如在Docker中運行Docker。
您可以使用--cap-add
標誌提供特定功能。有關這些功能的更多信息,請參閱man 7 capabilities
。可以使用字面名稱,例如--cap-add CAP_FOWNER
。
有一個很好的文章涵蓋from RedHat covering this
雖然搬運工人容器中運行的「根」具有比主機根少的特權,它仍可能取決於你的使用情況需要硬化(使用作爲開發環境VS共享生產羣集)
由於這個職位是高在谷歌搜索排名,我想補充的,爲什麼你從來沒有想要運行使用--privileged
我在我的筆記本電腦有NVMe驅動器這樣的容器信息,但它適用於任何工作主辦。
docker run --privileged -t -i --rm ubuntu:latest bash
首先讓做一些輕微的,以測試/ proc文件系統
從容器:
[email protected]:/# cat /proc/sys/vm/swappiness
60
[email protected]:/# echo "61" > /proc/sys/vm/swappiness
[email protected]:/# cat /proc/sys/vm/swappiness
60
確定並改變它爲它的容器或主機?
$ cat /proc/sys/vm/swappiness
61
OOPS !,我們可以隨意更改主機的內核參數。但這只是DOS情況,讓我們看看我們是否可以從父主機收集特權信息。
讓我們步行/sys
樹並找到引導磁盤的主要次要號碼。
注:我有兩個NVMe驅動器和容器LVM在另一個驅動器
[email protected]:/proc# cat /sys/block/nvme1n1/dev
259:2
OK上運行可以讓使設備文件中的位置,其中DBUS規則將不會自動掃描。
[email protected]:/proc# mknod /devnvme1n1 b 259 2
[email protected]:/proc# sfdisk -d /devnvme1n1
label: gpt
label-id: 1BE1DF1D-3523-4F22-B22A-29FEF19F019E
device: /devnvme1n1
unit: sectors
first-lba: 34
last-lba: 2000409230
<SNIP>
OK,我們可以讀到的啓動盤,讓我們做一個設備文件的分區中的一個。雖然我們無法安裝它,但仍然可以使用dd
進行復制。
[email protected]:/proc# mknod /devnvme1n1p1 b 259 3
[email protected]:/# dd if=devnvme1n1p1 of=foo.img
532480+0 records in
532480+0 records out
272629760 bytes (273 MB, 260 MiB) copied, 0.74277 s, 367 MB/s
確定讓它掛載,看看我們的努力是否有效!
[email protected]:/# mount -o loop foo.img /foo
[email protected]:/# ls foo
EFI
[email protected]:/# ls foo/EFI/
Boot Microsoft ubuntu
因此,基本上,你讓任何人上啓動--privileged
容器中的任何容器主機一樣給他們的根訪問該主機上的每個容器。
不幸的是,泊塢窗項目選擇可信計算模型,以及AUTH外插件就沒有辦法防止這一點,所以總是錯誤的添加需要的功能與使用--privileged
- 1. Kubernetes特權容器和功能
- 2. 有特權的碼頭容器不能刪除功能?
- 3. 具有特權功能的Javascript繼承
- 4. 加權特里自動建議功能
- 5. 是否有可能在Amazon elasticbeanstalk上啓動特權Docker容器?
- 6. 從容器功能退出
- 7. tomcat servlet容器的功能
- 8. LXC創建無特權的容器
- 9. 容器內部的特權下降
- 10. 上點擊以特定於容器中運行的功能
- 11. PostgreSQL和特權
- 12. 左側和右側容器不能更改權利
- 13. Azure容器權限
- 14. Business Objects - 容器還是功能?
- 15. Opentype功能跨瀏覽器兼容性
- 16. 用g個容器重繪功能
- 17. windows server 2012容器功能在哪裏
- 18. 容器的Matlab欄功能。地圖
- 19. 傳遞載體容器等功能
- 20. 傳遞一個std容器的功能
- 21. 在服務中使用容器功能
- 22. UserControl擴展ScrollableControl - 禁用容器功能
- 23. 如何覆蓋STL容器功能
- 24. 功能檢舉VS授權
- 25. Rails授權功能測試
- 26. Facebook權限offline_access的功能?
- 27. 遞歸「權力」的功能
- 28. CakePHP中的控制器特定功能
- 29. 編輯器的HTML特定功能
- 30. Android和Google Play兼容性的功能
的一側有什麼辦法瞭解特定應用程序需要哪些功能?這對於大多數應用程序來說似乎沒有記錄。 – codefx
@codefx這裏沒有經驗法則,它取決於應用程序以及它在運行時可能調用的系統調用。如果您使用集線器上的現成碼頭圖像,那麼很可能會在那裏提到它。如果你使用你自己編寫的東西,你應該知道你使用的哪些內核API可能需要特殊的功能 – buddy123