網路和虛擬機器常見問題解答

如何在容器執行時限制其允許的網際網路存取類型,以防止其能夠竊取資料或下載惡意程式碼?

沒有內建機制可以做到這一點,但可以透過主機上的流程層級防火牆來解決。掛鉤到 com.docker.vpnkit 使用者空間流程,並套用它可以連線到的地方(DNS URL 白名單;數據包/有效負載篩選器)以及允許它使用的埠/協定規則。

我可以防止使用者在 0.0.0.0 上綁定埠嗎?

沒有直接方法可以透過 Docker Desktop 強制執行,但它會繼承主機上強制執行的任何防火牆規則。

有哪些選項可以將容器化網路設定鎖定到系統?如果不支援,操作設定會有什麼後果?

Docker 網路設定完全在本機虛擬機器內,對系統沒有影響。

我可以透過本機防火牆或 VPN 用戶端對容器網路流量套用規則嗎?

對於網路連線,Docker Desktop 使用使用者空間流程 (com.docker.vpnkit),它會從啟動它的使用者繼承防火牆規則、VPN、HTTP 代理伺服器屬性等限制。

使用 Hyper-V 後端執行 Docker Desktop for Windows 是否允許使用者建立任意虛擬機器?

不行。DockerDesktopVM 名稱在服務程式碼中是硬編碼的,因此您無法使用 Docker Desktop 建立或操作任何其他虛擬機器。

在 Mac 上使用 Docker Desktop 時,我可以防止我們的使用者建立其他虛擬機器嗎?

在 Mac 上,啟動虛擬機器是不需要權限的操作,因此 Docker Desktop 並未強制執行。

當使用 Hyper-V 和/或 WSL2 時,Docker Desktop 如何實現網路層級隔離?

虛擬機器流程對於 WSL 2(在 docker-desktop 發行版內執行)和 Hyper-V(在 DockerDesktopVM 內執行)都是相同的。主機/虛擬機器通訊使用 AF_VSOCK 虛擬機器管理程式通訊端(共用記憶體)。它不使用 Hyper-V 網路交換器或網路介面。所有主機網路都是使用來自 com.docker.vpnkit.execom.docker.backend.exe 流程的正常 TCP/IP 通訊端來執行的。如需詳細資訊,請參閱 Docker Desktop 網路如何在幕後運作.