將此篇文章跟 Facebook 上的朋友分享將此篇文章跟 Plurk 上的朋友分享將此篇文章跟 Twitter 上的朋友分享列印轉寄
2019/2/11

容器技術條理說分明 由淺入深QA快問快答

基礎知識打底必讀 Docker面試100題(一)

鄭淳尹
本系列文章根據Ajeet Singh Raina所寫的「Top 100 Docker Interview Questions」文章,翻譯轉載成一百個問題與答案,其中將Docker相關面試問題分成初級、中級和進階級。若你正在準備Docker相關工作的職缺面試,或渴望獲得Docker相關工具及知識,這些內容可能就是你最需要知道的。


想將正在執行中的容器連接到現有的使用者定義的橋接網路,請使用docker network connect指令,下列指令將已經在運行的my-nginx容器連接到已存在的my-net網路:

 
$ docker network connect my-net
 my-nginx


Q23:Docker是否支援IPv6?

是的,Docker支援IPv6,只有在Linux平台上運行的Docker版本支援IPv6網路,自從Docker Engine 1.5發布以來,皆支援IPv6位址,要在Docker Daemon程序中啟用IPv6功能,需要編輯「/etc/docker/daemon.json」並設置ipv6值為true:

 
{
  "ipv6": true
}


然後重新載入Docker配置檔,重啟Docker:

 
$ systemctl reload docker


現在就可以使用--ip6參數來新增網路,並使用--ip6參數來配置容器IPv6位址。

Q24:如何部署Docker映像檔到Azure容器實例?

使用az工具(Azure CLI),亦可使用microsoft/azure-cli映像檔(https://hub.docker.com/r/microsoft/azure-cli/),輸入az container create指令來部署容器:

 
$ az container create --resource-
  group    --name  
  --image    --cpu 1 --memory 1 --registry-
  login-server    --registry-username    --registry-password    --dns-name-label  
  --ports 80


然後,驗證容器實例新建的狀態:

 
$ az container show --resource-
  group    --name  
  --query instanceView.state


當容器處於Running狀態時,在瀏覽器中輸入容器實例對應的完整網址名稱(Fully Qualified Domain Name,FQDN),以便檢查應用系統是否已經成功部署,透過Azure Portal到資源群組頁面中的Azure容器實例概述,或用下列指令,就可找到FQDN:

 
$ az container show –resource-
   group     –name 
   –query ipAddress.fqdn


Q25:層疊網路(Overlay)與橋接網路(Bridge)有何不同?

橋接網路連接兩個網路,讓來自多個通訊網路或網段組成單一合併網路,因此稱為橋接。層疊網路通常用在兩台分隔的主機之間建立虛擬網路,那為何稱為虛擬?因為其網路利用現有網路上所疊架而成的。

橋接網路適用於單一主機中,而層疊網路則是應用於多台主機上(圖10)。


▲圖10 多台主機以層疊網路連接。


Q26:將Docker主機加入到現有的Swarm叢集時,有哪些網路會被影響到?

當Swarm叢集初始化或將Docker主機加入現有Swarm時,在那台Docker主機上建立兩個新的網路:

‧第一個是命名為ingress的層疊網路,用在處理和叢集服務相關的控制和資料流量,當建立Swarm叢集服務時,若不將其連接到使用者定義的層疊網路時,則預設情況會連接到ingress網路。

‧第一個是命名為docker_gwbridge的橋接網路,它會將個別的Docker Daemon連接到已加入Swarm的其他Docker Daemons。

Q27:如何禁用容器上的網路堆疊?

如果要完全禁用容器中的網路堆疊,可以在啟動容器時使用「--network none」參數,在容器內,就會只新增loopback裝置,圖11為其示意圖。


▲圖11 無網路容器之拓樸圖。


Q28:如何替Docker容器建立MacVLAN網路?

要建立Macvlan網路並配合實體網路介面的橋接器,可以使用--driver macvlan和docker network create指令,還需要指定實際運作介面,就是在Docker主機上網路流量會實際通過的網路介面:

 
$ docker network create -d macvlan   --subnet = 172.16.86.0/24   --gateway = 172.16.86.1   -o parent = eth0 collabnet


Q29:是否可以排除在MacVLAN網路中已使用的IP位址?

如果需要排除在Macvlan網路中所使用的IP位址,例如當IP位址已經被使用時,請使用--aux-addresses:

這篇文章讓你覺得滿意不滿意
送出
相關文章
善用QRadar App架構 開發客製化安全監控程式
秒速容器服務 挺應用轉型
Hyper-V隔離容器 支援.NET程式獨立運行
網路層貫通地端與雲端 實現容器隨需遷移
整併CoreOS底層技術 增強Day 2維運能力
留言
顯示暱稱:
留言內容:
送出