?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
Docker Engine群集模式的覆蓋網(wǎng)絡(luò)可以安全地開箱即用。群組節(jié)點使用八卦協(xié)議交換覆蓋網(wǎng)絡(luò)信息。默認(rèn)情況下,節(jié)點使用GCM模式下的AES算法對通過八卦交換的信息進(jìn)行加密和認(rèn)證。群中的管理器節(jié)點每12小時旋轉(zhuǎn)一次用于加密八卦數(shù)據(jù)的密鑰。
您還可以加密覆蓋網(wǎng)絡(luò)上不同節(jié)點上的容器之間交換的數(shù)據(jù)。要啟用加密,創(chuàng)建覆蓋網(wǎng)絡(luò)時要通過--opt encrypted
標(biāo)志:
$ docker network create --opt encrypted --driver overlay my-multi-host-network dt0zvqn0saezzinc8a5g4worx
當(dāng)您啟用覆蓋加密時,Docker會在所有節(jié)點之間創(chuàng)建IPSEC隧道,在這些節(jié)點上調(diào)度連接到覆蓋網(wǎng)絡(luò)的服務(wù)的任務(wù)。這些通道在GCM模式下也使用AES算法,管理器節(jié)點每12小時自動旋轉(zhuǎn)一次密鑰。
不要將Windows節(jié)點附加到加密的覆蓋網(wǎng)絡(luò)。 Windows上不支持覆蓋網(wǎng)絡(luò)加密。如果Windows節(jié)點嘗試連接到加密的覆蓋網(wǎng)絡(luò),則不會檢測到錯誤,但該節(jié)點將無法通信。
因為用于群集模式的覆蓋網(wǎng)絡(luò)使用來自管理器節(jié)點的加密密鑰來加密八卦通信,所以只有群集中作為任務(wù)運(yùn)行的容器才能訪問密鑰。因此,使用docker run
(非托管容器)在群集模式外啟動的容器無法附加到覆蓋網(wǎng)絡(luò)。
例如:
$ docker run --network my-multi-host-network nginx docker: Error response from daemon: swarm-scoped network(my-multi-host-network) is not compatible with `docker create` or `docker run`. This network can only be used by a docker service.
要解決這種情況,請將非托管容器遷移到托管服務(wù)。例如:
$ docker service create --network my-multi-host-network my-image
由于swarm模式是可選功能,因此Docker引擎可以保持向后兼容性。如果您愿意,您可以繼續(xù)依賴第三方鍵值存儲來支持覆蓋網(wǎng)絡(luò)。然而,強(qiáng)烈鼓勵切換到群模式。除了本文中介紹的安全優(yōu)勢外,swarm模式還可以充分利用新服務(wù)API提供的更高的可伸縮性。