本系列文章根據Ajeet Singh Raina所寫的「Top 100 Docker Interview Questions」文章,翻譯轉載成一百個問題與答案,其中將Docker相關面試問題分成初級、中級和進階級。若你正在準備Docker相關工作的職缺面試,或渴望獲得Docker相關工具及知識,這些內容可能就是你最需要知道的。
‧HTTP網狀式路由(Routing Mesh)
允許在多個服務之間共享相同的網路IP位址和埠號,根據客戶端的請求,UCP使用主機名稱和埠號之組合將網路流量繞送到適當的服務。
‧會話持續性(Session Stickiness)
允許在HTTP標頭中客製訊息,UCP可用於將後續請求繞送到同一服務任務,適用於需要有狀態會話的應用程式。
Q19:Docker Bridge網路與傳統的Linux橋接器有何不同?
以網路方面術語,橋接器網路是鏈路層(Layer2)設備,它在不同網段間轉發封包流量,網路橋接器可以是硬體設備或是Host主機內核所執行的軟體模擬裝置。
以Docker技術來說,橋接器網路是使用軟體橋接器,此橋接器可以讓連接到同一橋接網路的容器相互通訊,同時提供未連接到此橋接網路之容器的隔離功能,Docker橋接器驅動程式會自動在主機中新增橋接規則,以便讓不同橋接網路上的容器無法直接相互溝通(圖6)。
|
▲圖6 Docker Bridge網路示意圖。 |
Q20:如何建立使用者定義的Bridge網路?
要建立使用者定義的橋接器網路,可使用docker network create命令,指令範例如圖7所示:
|
▲圖7 新增Docker Network。 |
? $ docker network create mynet
可以指定子網路、IP位置範圍、閘道器和其他選項,相關詳細訊息,請參閱docker network create官方文件(https://docs.docker.com/engine/reference/commandline/network_create/)或用「docker network create -help」指令查詢。
Q21:如何刪除使用者定義的Bridge網路?
使用docker network rm指令刪除使用者定義的橋接網路(圖8),如果目前已有容器連接到網路,請先將它們斷線:
|
▲圖8 刪除Docker Network。 |
? $ docker network rm mynet
Q22:如何將Docker容器連接到使用者定義的橋接網路?
可以使用以下的指令來進行:
? $ docker create --name my-nginx --network my-net --publish 8080:80 nginx:latest
當建立新容器時,可以指定一個或多個--network參數,此範例將Nginx容器連接到my-net網路,還將容器中的埠號80對應到Docker主機上的埠號8080,因此外部使用者可以存取此連接埠,而其他任何連接到my-net網路的容器都可以存取my-nginx容器上的所有連接埠,當然my-nginx也可存取到其他容器的所有連接埠(圖9)。
|
▲圖9 容器與Host主機的埠號對應。 |