DevOps Docker 去中心化 容器

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

2019-02-11
本系列文章根據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:


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!