本系列文章根據Ajeet Singh Raina所寫的「Top 100 Docker Interview Questions」文章,翻譯轉載成一百個問題與答案,其中將Docker相關面試問題分成初級、中級和進階級。若你正在準備Docker相關工作的職缺面試,或渴望獲得Docker相關工具及知識,這些內容可能就是你最需要知道的。
? $ docker network create -d macvlan –subnet=192.168.32.0/24 –ip-range=192.168.32.128/25 –gateway=192.168.32.254 –aux-address="my-router=192. 168.32.129" -o parent=eth0 collabnet32
MacVLAN相關詳細說明,請參閱官方文件(https://docs.docker.com/network/macvlan/)。
Q30:當容器登出或停止時,資料會消失嗎?
完全不會!在明確地刪除容器之前,應用程式寫入磁碟的任何資料都會保留在其容器中,即便容器停止,那容器的檔案系統仍然會存在。
Q31:如何在容器之間建立連線?
先建立第一個容器作為server-sshserver:
? $ docker run -i -t -p 2222:22 --name sshserver ubuntu bash
再建立第二個容器當成SSH客戶端:
? $ docker run -i -t --name sshclient --link sshserver:sshserver ubuntu bash
Docker --link功能可在容器間建立私有通道,可使用docker inspect來檢查已串接的容器:
? $ docker inspect -f "{{ .HostConfig. Links }}" sshclient
執行之後,輸出結果如下:
? [/sshserver:/sshclient/sshserver]
最後,以SSH藉由其IP進入SSH伺服器:
? $ ssh root@172.17.0.3 -p 22
Q32:什麼是Docker Swarm?
Docker Swarm是Docker原生的叢集功能,它將單一Docker主機轉變為單個多台Docker主機的虛擬資源池,Docker Swarm提供標準的Docker API,任何已經與Docker Daemon串接好的工具都可以使用Swarm通透地橫向擴展到多台主機。
Q33:何謂--memory-swap參數?
--memory-swap是一個修改用的參數,只有在同時設置了--memory時才會有作用,使用swap允許容器在容器耗盡所有可用的RAM時,將額外記憶體的需求寫入磁碟,對於經常要將記憶體交換到磁碟的應用程式,其執行效能會受到影響。
結語
以上是「Docker面談的一百個問題與答案」的第一部分,只包含Docker基礎知識(初級),尚有部分初級、中級和進階的問答,由於知識是連貫的,先熟悉Docker基礎知識,才可融會更深入的實際應用,使其實踐在自身的工作之中,敬請期待後續兩篇的內容。
<本文作者:鄭淳尹,Docker/Moby.Taipei社群共同發起人,現為momo購物網資深工程師,曾任臺北榮民總醫院資訊工程師、玉山銀行資訊處專員、宏碁eDC維運工程師,系統維護及開發設計超過15年。開源技術愛好者,陸續在COSCUP開源人年會、Container Summit研討會、台灣微軟開發者大會、群益期貨和永豐金證券等分享資訊技術,並在多間大學資工系擔任Docker容器技術講師。現任微軟MVP,並翻譯審閱多本容器技術書籍。>