Docker 常見手寫面試題分享,給你安排的明明白白!
一、映象相關
- 1. 如何備份系統中所有的映象?
答首先, 備份映象列表可以使用docker images | awk 'NR>l{prin七$1":"$2} ' | sort > images.list
。
匯出所有映象為當前目錄下檔案, 可以使用如下命令:
while read img; do
echo $img
file="${img/\//-}"
sudo docker save --output $file. tar $img
done< images.list
將本地映象檔案匯入為Docker映象:
while read img; do
echo $img
file="${img/\//-}"
docker load< $file.tar
done< images.list
- 2. 如何批次清理臨時映象檔案?
答:可以使用docker rmi $(docker images -q -f dangling = rue)
命令。 -
-
3. 如何刪除所有本地的映象?
答: 可以使用docker rmi -f $(docker images -q)
命令。 -
-
4. 如何清理Docker系統中的無用資料?
答:可以使用docker system prune --volumes -f
命令, 這個命令會自動清理處於停止狀態的容器、 無用的網路和掛載卷、 臨時映象和建立映象快取。 -
-
5. 構建Docker映象應該遵循哪些原則?
答:整體原則上, 儘量保待映象功能的明確和內容的精簡, 避免新增額外檔案和操作步驟, 要點包括:
-
儘量選取滿足需求但較小的基礎系統映象, 例如大部分時候可以選擇
debian:
wheezy
或debian:jessie
映象, 僅有不足百兆大小; -
清理編譯生成檔案、 安裝包的快取等臨時檔案;
-
安裝各個軟體時候要指定準確的版本號, 並避免引入不需要的依賴;
-
從安全形度考慮, 應用要儘量使用系統的庫和依賴;
-
如果安裝應用時候需要配置一些特殊的環境變數, 在安裝後要還原不需要保持的變數值;
-
使用
Dockerfile
建立映象時候要新增.dockerignore
檔案或使用乾淨的工作目錄; -
區分編譯環境容器和執行時環境容器, 使用多階段映象建立。
二、容器相關
- 1. 容器退出後, 透過
docker ps
命令檢視不到,資料會丟失麼?
答:容器退出後會處於終止(exited)
狀態, 此時可以透過docker ps -a
檢視。 其中的資料也不會丟失, 還可以透過docker [container] start
命令來啟動它。 只有刪除掉容器才會清除所有資料。 - 2. 如何停止所有正在執行的容器?
答:可以使用docker [container] stop $(docker ps -q)
命令。 - 3. 如何獲取某個容器的PIO資訊?
答:可以使用docker [container] inspect --format ' {{ . State.Pid }} '< CONTAINER ID or NAME>
命令。 - 4. 如何臨時退出一個正在互動的容器的終端, 而不終止它?
答:按ctrl-p Ctrl-q
。 如果按ctrl-c
往往會讓容器內應用程式終止, 進而會終止容器。 - 5. 如何控制容器佔用系統資源(CPU、記憶體)的份額?
答:在使用docker [container] create
命令建立容器或使用docker [container] run
建立並啟動容器的時候, 可以使用-c | - cpu -shares[=O]
引數來調整容器使用 CPU 的權重;使用-ml-memory[=MEMORY]
引數來調整容器使用記憶體的大小。
三、倉庫相關
- 1. 倉庫(
Repository
)、 註冊伺服器(Registry
)、 註冊索引(Index
)有何關係?
答:倉庫是存放一組關聯映象的集合,比如同一個應用的不同版本的映象。註冊伺服器是存放實際的映象檔案的地方。註冊索引則負責維護使用者的賬號、許可權、搜尋、標籤等的管理。因此,註冊伺服器利用註冊索引來實現認證等管理。
四、配置相關
- 1. Docker的配置檔案放在哪裡, 如何修改配置?
答:使用upstart
的系統(如Ubuntu 16.04
)的配置檔案在/etc/default/docker
, 使用systemd
的系 統(如Ubuntu 16.04、Centos
等)的配置檔案在/etc/systemd/system/dockerservice.d/docker.conf
。
Ubuntu
下面的配置檔案內容如下, 讀者可以參考配置(如果出現該檔案不存在的情況,重啟或者自己新建一個檔案都可以解決):
# Customize location of Docker binary (especially for development testing) .
#DOCKERD="/usr/local/bin/dockerd"
# Use DOCKER_OPTS to modify the daemon startup options.
#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
#if you need Docker to use an HTTP proxy, it can also be specified here.
#export http_proxy="
# This is also a handy place to tweak where Docker's temporary files go.
#export TMPDIR="/mnt/bigdrive/docker-tmp"
五、Docker與虛擬化
- 1. Docker與LXC (
Linux Container
)有何不同?
答:LXC利用Linux上相關技術實現了容器支援; Docker早期版本中使用了LXC技術,後期演化為新的libcontainer
, 在如下的幾個方面進行了改進:
-
移植性: 透過抽象容器配置, 容器可以實現從一個平臺移植到另一個平臺;
-
映象系統: 基於AUFS的映象系統為容器的分發帶來了很多的便利, 同時共同的映象層只需要儲存一份,實現高效率的儲存;
-
版本管理: 類似於Git的版本管理理念, 使用者可以更方便地建立、 管理映象檔案;
-
倉庫系統: 倉庫系統大大降低了映象的分發和管理的成本;
-
周邊工具: 各種現有工具(配置管理、 雲平臺)對Docker的支援, 以及基於Docker 的PaaS、CI等系統, 讓Docker的應用更加方便和多樣化。
六、其他方面
- 1. Docker能在非Linux平臺(比如
macOS
或Windows
)上執行麼?
答:可以。 macOS目前需要使用docker for mac
等軟體建立一個輕量級的Linux虛擬機器層。 由於成熟度不高,暫時不推薦在Windows環境中使用Docker。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69964492/viewspace-2764305/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Docker常見面試題Docker面試題
- 面試阿里,位元組,騰訊90%被問到的springboot常見面試題,這次給你講的明明白白!阿里Spring Boot面試題
- 常見的 PHP 面試題和答案分享PHP面試題
- 面試常見手撕程式碼題面試
- Linux常見面試題,你會多少?Linux面試題
- 幾個常見的Python面試題分享,幫你順利求職Python面試題求職
- 分享100 道 Linux 常見面試題(上)Linux面試題
- web前端教程分享:常見 React 面試題Web前端React面試題
- 集合常見的面試題面試題
- 常見的JVM 面試題JVM面試題
- Java常見的面試題Java面試題
- Vue常見的面試題Vue面試題
- Docker常見面試題及答案!Linux入門教程Docker面試題Linux
- 寫給即將面試的你面試
- String常見面試題面試題
- vue 常見面試題Vue面試題
- Mysql 常見面試題MySql面試題
- Redis 常見面試題Redis面試題
- Golang常見面試題Golang面試題
- Spring常見面試題!Spring面試題
- Hadoop常見面試題Hadoop面試題
- Dubbo常見面試題面試題
- 前端常見面試題前端面試題
- ajax常見面試題面試題
- Redis常見面試題Redis面試題
- 常見 React 面試題React面試題
- mybatis常見面試題MyBatis面試題
- spring常見面試題Spring面試題
- SpringMVC常見面試題SpringMVC面試題
- 【Java面試】JSP常見面試題!JavaJS面試題
- 【Java面試】Servlet常見面試題!JavaServlet面試題
- 【Java面試】 Javascript常見面試題!JavaScript面試題
- 【面試】面試常見問題整理面試
- 15道Linux常見面試題,你知道多少?Linux面試題
- Linux常見面試題,這些你知道多少?Linux面試題
- 還不懂Docker?一個故事安排的明明白白!Docker
- 常見的Java面試問題Java面試
- 那些常見的面試題整理面試題