分享10道Docker容器相關面試題!!!
1.本地的映象檔案都存放在哪裡
於Docker相關的本地資源存放在/var/lib/docker/目錄下,其中container目錄存放容器資訊,graph目錄存放映象資訊,aufs目錄下存放具體的映象底層檔案。
2.構建Docker映象應該遵循哪些原則?
整體遠側上,儘量保持映象功能的明確和內容的精簡,要點包括:
儘量選取滿足需求但較小的基礎系統映象,建議選擇debian:wheezy映象,僅有86MB大小
清理編譯生成檔案、安裝包的快取等臨時檔案
安裝各個軟體時候要指定準確的版本號,並避免引入不需要的依賴
從安全的角度考慮,應用盡量使用系統的庫和依賴
使用Dockerfile建立映象時候要新增.dockerignore檔案或使用乾淨的工作目錄3.很多應用容器都是預設後臺執行的,怎麼檢視它們的輸出和日誌資訊?
3.很多應用容器都是預設後臺執行的,怎麼檢視它們的輸出和日誌資訊?
檢視所有容器的docker-compose logs
4.如何控制容器佔用系統資源(CPU,記憶體)的份額?
可以使用-c|–cpu-shares[=0]引數來調整同期使用CPU的權重,使用-m|–memory引數來調整容器使用記憶體的大小。
5.倉庫(Repository)、註冊伺服器(Registry)、註冊索引(Index)有何關係?
首先,倉庫是存放一組關聯映象的集合,比如同一個應用的不同版本的映象。註冊伺服器是存放實際的映象檔案的地方。註冊索引則負責維護使用者的賬號、許可權、搜尋、標籤等的管理。因此,註冊伺服器利用註冊索引來實現認證等管理。
6.Docker與LXC(Linux Container)有何不同?
LXC為Linux Container的簡寫,LXC容器是一種核心虛擬化技術,可以提供輕量級的虛擬化,以便隔離程式和資源。
Docker的底層就是使用了LXC來實現的,在LXC的基礎之上,Docker提供了一系列更強的功能。
7.Docker與Vagrant有何不同?
Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上,便可以實現虛擬化。
Vagrant是一個可建立輕量級、高複用性和便於移植的開發環境的工具。
可以簡單理解為Vagrant拋棄開發環境中所有讓人頭痛的設定,而是用一個單一的配置檔案來替代,並且可以選擇性地保留所需要的特性。
Vagrant適合用來管理虛擬機器,而docker適合用來管理應用環境。
8.原理
Docker採用的是CS架構,docker client 通過Unix套接字或者網路介面訪問 docker daemon,從而完成容器、映象等內容的管理。
9.侷限
1、Docker是基於Linux 64bit的,無法在32bit的linux/Windows/unix環境下使用
2、LXC是基於cgroup等linux kernel功能的,因此container的guest系統只能是linux base的
3、隔離性相比KVM之類的虛擬化方案還是有些欠缺,所有container公用一部分的執行庫
4、網路管理相對簡單,主要是基於namespace隔離
5、cgroup的cpu和cpuset提供的cpu功能相比KVM的等虛擬化方案相比難以度量(所以dotcloud主要是按記憶體收費)
6、docker對disk的管理比較有限
7、container隨著使用者程式的停止而銷燬,container中的log等使用者資料不便收集
10.如何更改Docker的預設儲存設定?
關閉docker服務
systemctl stop docker.service
# 移動資料到新的目錄
mv /var/lib/docker /export/docker
# 修改docker.service檔案,使用-g引數指定儲存位置
vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --graph /new-path/docker
# reload配置檔案
systemctl daemon-reload
# 重啟docker
相關文章
- 一道與 for 相關的字串面試題字串面試題
- 技術面試題分享:含答案的10道Jvm面試專題面試題JVM
- 分享100 道 Linux 常見面試題(上)Linux面試題
- Docker 相關問題Docker
- ES相關面試題面試題
- 集合相關面試題面試題
- 分享一道昨天的面試題面試題
- 常見的10道Web前端面試題及答案分享!Web前端面試題
- 雜題隨筆 10.31 兩道LIS相關的題
- 乾貨分享:18道Spring面試題Spring面試題
- 分享一道Go面試必考的題Go面試
- 好程式設計師Java教程分享jsp相關面試題程式設計師JavaJS面試題
- TCP相關面試題總結TCP面試題
- [C++] STL相關面試題C++面試題
- 分享幾道我們面試前端的“真題”面試前端
- Go語言面試題分享:選擇題10道(3)go語言學習Go面試題
- Go語言面試題分享:選擇題10道(1)go語言學習Go面試題
- Docker相關Docker
- shell相關知識有哪些必備技能?Linux面試題分享Linux面試題
- 面試題(五)常見vue相關面試題總結面試題Vue
- 100道JAVA面試題+JAVA面試題參考答案Java面試題
- Java中JVM相關面試題-整理JavaJVM面試題
- 面試遇到的redis相關問題面試Redis
- Unity3D相關面試題Unity3D面試題
- 系統設計 相關面試題面試題
- 【Java面試題】之泛型相關Java面試題泛型
- 面試中網路相關題目面試
- 面試題及相關參考答案面試題
- 隨機概率相關的面試題隨機面試題
- 關於棧的幾道面試題目面試題
- 【Java面試題】如何回答GC相關問題Java面試題GC
- 100 個容器技術相關技能棧
- Docker相關概念Docker
- Docker容器配置Nginx例項分享DockerNginx
- Docker容器學習與分享12Docker
- Java執行緒池底層原始碼分享和相關面試題(持續更新)Java執行緒原始碼面試題
- 分享30道Redis面試題,面試官能問到的我都找到了Redis面試題
- Go語言開發面試題分享:(判斷題13道)(6)Go面試題