【LinuxSRE運維學習】2022最新Docker常見面試題彙總!

老男孩IT教育機構發表於2022-08-29

 什麼是Docker?它是一個開源的應用容器引擎,基於go語言開發並遵循了apache2.0協議開源,它是在Linux容器裡執行應用的開源工具,是一種輕量級的虛擬機器,本篇文章總結了一些Docker常見面試題,請看下文:

  Docker與虛擬機器的區別是什麼?

  虛擬機器透過新增Hypervisor層(虛擬化中間層),虛擬出網路卡、記憶體、CPU等虛擬硬體,再在其上建立虛擬機器,每個虛擬機器都有自己的系統核心。而Docker容器則是透過隔離(namesapce)的方式,將檔案系統、程式、裝置、網路等資源進行隔離,再對許可權、CPU資源等進行控制(cgroup),最終讓容器之間互不影響,容器無法影響宿主機。

  與虛擬機器相比,容器資源損耗要少。同樣的宿主機下,能夠建立容器的數量要比虛擬機器多

  但是,虛擬機器的安全性要比容器稍好,而docker容器與宿主機共享核心、檔案系統等資源,更有可能對其他容器、宿主機產生影響。

  Docker的三大核心是什麼?

  映象:Docker的映象是建立容器的基礎,類似虛擬機器的快照,可以理解為一個面向Docker容器引擎的只讀模板。透過映象啟動一個容器,一個映象是一個可執行的包,其中包括執行應用程式所需要的所有內容包含程式碼,執行時間,庫、環境變數、和配置檔案。

  容器:Docker的容器是從映象建立的執行例項,它可以被啟動、停止和刪除。所建立的每一個容器都是相互隔離、互不可見,以保證平臺的安全性。可以把容器看做是一個簡易版的linux環境(包括root使用者許可權、映象空間、使用者空間和網路空間等)和執行在其中的應用程式。

  倉庫:倉庫註冊伺服器上往往存放著多個倉庫,每個倉庫中包含了多個映象,每個映象有不同標籤(tag)。

  如何修改Docker的儲存位置?

  預設情況下Docker的存放位置為:/var/lib/docker,可以透過命令檢視具體位置:docker info | grep “Docker Root Dir”

  修改到其它目錄:首先停掉Docker服務,systemctl stop docker,然後移動整個/var/lib/docker 目錄到目的路徑,mkdir -p /root/data/docker、mv /var/lib/docker /root/data/docker、ln -s /root/data/docker /var/lib/docker --快捷方式

  Docker在後臺的標準執行過程是什麼?

  當利用docker run來建立容器時, Docker在後臺的標準執行過程是:

  檢查本地是否存在指定的映象。當映象不存在時,會從公有倉庫下載;

  利用映象建立並啟動一個容器;

  分配一個檔案系統給容器,在只讀的映象層外面掛載一層可讀寫層;

  從宿主主機配置的網橋介面中橋接一個虛擬機器介面到容器中;

  分配一個地址池中的 IP 地址給容器;

  執行使用者指定的應用程式,執行完畢後容器被終止執行;

  什麼是Docker的資料卷?

  資料卷是一個供容器使用的特殊目錄,位於容器中。可將宿主機的目錄掛載到資料捲上,對資料卷的修改操作立刻可見,並且更新資料不會影響映象,從而實現資料在宿主機與容器之間的遷移。資料卷的使用類似於Linux下對目錄進行的mount操作。

  如果需要在容器之間共享一些資料,最簡單的方法就是使用資料卷容器。資料卷容器是一個普通的容器,專門提供資料卷給其他容器掛載使用。

  容器互聯是透過容器的名稱在容器間建立一條專門的網路通訊隧道。簡單點說,就是會在源容器和接收容器之間建立一條隧道,接收容器可以看到源容器指定的資訊。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2912425/,如需轉載,請註明出處,否則將追究法律責任。

相關文章