增強容器隔離常見問題解答

訂閱: 商業版
適用於: 管理員

此頁面解答了關於增強容器隔離 (ECI) 的常見問題,這些問題在主要文件中未涵蓋。

啟用 ECI 後,我需要改變使用 Docker 的方式嗎?

不需要。ECI 透過建立更安全的容器在後臺自動工作。您可以繼續使用所有現有的 Docker 命令、工作流和開發工具,無需任何更改。

所有容器工作負載都能與 ECI 良好協作嗎?

在 ECI 開啟時,大多數容器工作負載都能正常執行。但是,一些需要特定核心級訪問的“高階”工作負載可能無法執行。有關受影響的工作負載的詳細資訊,請參閱 ECI 限制

為什麼不直接限制使用 --privileged 標誌?

特權容器用於 Docker-in-Docker、Kubernetes-in-Docker 和訪問硬體裝置等合法目的。ECI 提供了一個更好的解決方案,允許這些高階工作負載安全執行,同時防止它們損害 Docker Desktop VM。

ECI 會影響容器效能嗎?

ECI 對容器效能的影響極小。唯一的例外是執行許多 mountumount 系統呼叫的容器,因為這些容器會由 Sysbox 執行時進行安全檢查。大多數開發工作負載沒有明顯的效能差異。

啟用 ECI 後,我可以覆蓋容器執行時嗎?

不。啟用 ECI 後,所有容器都使用 Sysbox 執行時,無論是否存在任何 --runtime 標誌。

$ docker run --runtime=runc alpine echo "test"
# This still uses sysbox-runc, not runc

忽略 --runtime 標誌是為了防止使用者透過在 Docker Desktop VM 中以真正的 root 身份執行容器來繞過 ECI 安全。

ECI 能保護在啟用之前建立的容器嗎?

不。ECI 僅保護在啟用後建立的容器。在啟用 ECI 之前移除現有容器。

$ docker stop $(docker ps -q)
$ docker rm $(docker ps -aq)

有關更多詳細資訊,請參閱 啟用增強容器隔離

ECI 保護哪些容器?

ECI 保護因容器型別和 Docker Desktop 版本而異。

始終受保護

  • 使用 docker rundocker create 建立的容器
  • 使用 docker-container 構建驅動程式的容器

版本相關

  • Docker Build:在 Docker Desktop 4.30+ 中受保護(WSL 2 除外)
  • Kubernetes:在使用 kind provisioner 時,在 Docker Desktop 4.38+ 中受保護

不受保護

  • Docker 擴充套件
  • Docker Debug 容器
  • 使用 Kubeadm provisioner 的 Kubernetes

有關完整詳細資訊,請參閱 ECI 限制

啟用 ECI 後,我可以掛載 Docker socket 嗎?

預設情況下,不能。ECI 為了安全起見會阻止 Docker socket 繫結掛載。但是,您可以為 Testcontainers 等受信任的映象配置例外。

有關配置詳細資訊,請參閱 配置 Docker socket 例外

ECI 限制哪些繫結掛載?

ECI 限制 Docker Desktop VM 目錄的繫結掛載,但允許在 Docker Desktop 設定中配置的主機目錄掛載。