Lxc
Docker/LXC 中的 AppArmor 配置文件
我有一個執行 MySQL 的 Docker 容器 (LXC)。由於 Docker 背後的想法通常是“每個容器執行一個程序”,如果我定義針對 MySQL 二進製文件的 AppArmor 配置文件,它們會被強制執行嗎?有沒有辦法讓我測試這個?
首先,cgroup 不用於將應用程序與系統上的其他應用程序隔離開來。它們用於管理資源使用和設備訪問。提供一些(有限)隔離的是各種命名空間(PID、UTS、掛載、使用者…)。
此外,在 Docker 容器內啟動的程序可能無法管理其執行的 AppArmor 配置文件。目前採用的方法是在啟動容器之前設置特定的 AppArmor 配置文件。
看起來 Docker 中的 libcontainer 執行驅動程序支持為容器設置 AppArmor 配置文件,但我在文件中找不到任何範例或參考。
顯然Ubuntu 中的 LXC也支持 AppArmor 。
您應該為您的應用程序編寫一個 AppArmor 配置文件,並確保 LXC/libcontainer/Docker/… 在啟動容器內的程序之前載入它。
應該強制執行以這種方式使用的配置文件,並且要對其進行測試,您應該嘗試非法訪問並確保它失敗。
在這種情況下,二進製文件和實際執行的配置文件之間沒有連結。您必須明確告訴 Docker/LXC 將此配置文件用於您的容器。為 MySQL 二進製文件編寫配置文件只會在主機上強制執行,而不是在容器中。