[TOC]
Docker 面試常見問題
鏡像相關
- 1锦茁、如何批量清理臨時鏡像文件?
sudo docker rmi $(sudo docker images -q -f danging=true)
- 2叉存、如何查看鏡像支持的環(huán)境變量码俩?
sudo docker run IMAGE env
-
3、本地的鏡像文件都存放在哪里歼捏?
于Docker相關的本地資源存放在 /var/lib/docker/目錄下稿存、其中container目錄存放容器信息、graph目錄存放鏡像信息瞳秽、aufs目錄存放具體的鏡像底層文件
- 4瓣履、構建Docker鏡像應該遵循哪些原則?
整體原則上练俐、盡量保持鏡像功能的明確和內(nèi)容的精簡袖迎、要點包括:
1、盡量選取滿足需求但較小的基礎系統(tǒng)鏡像腺晾、建議選擇Debian:wheezy鏡像燕锥,僅有86MB大小
2、清理編譯生成的文件悯蝉、安裝包的緩存等臨時文件
3脯宿、安裝各個軟件時候要指定準確的版本號、并避免引入不需要的依賴
4泉粉、從安全的角度考慮连霉、應用盡量使用系統(tǒng)的庫和依賴
5、使用Dockerfile創(chuàng)建鏡像時候要添加dockerignore文件或使用干凈的工具目錄
容器相關
-
1嗡靡、容器退出后跺撼、通過docker ps 命令查不到數(shù)據(jù)丟失么?
容器退出后會處于中止(exited)狀態(tài)讨彼、此時可以通過 docker ps -a 查看歉井、其中數(shù)據(jù)不會丟失、還可以通過docker start來啟動哈误、只有刪除容器才會清除數(shù)據(jù)
- 2哩至、如何停止所有正在運行的容器躏嚎?
sudo docker stop $(sudo docker ps -aq)
sudo docker kill $(sudo docker ps -aq)
- 3、如何清理批量后臺停止的容器菩貌?
sudo dokcer rm $(sudo docker ps -aq )
-
4卢佣、如何臨時退出一個正在交付的容器的終端、而不中止它箭阶?
按Ctrl+p 后按Ctrl+q虚茶、如果按Ctrl+c 會使容器內(nèi)的應用進程終止、進而會使容器終止
- 5仇参、很多應用容器都是默認后臺運行的嘹叫、怎么查看它們的輸出和日志信息?
sudo docker logs 诈乒、后面容器名稱或容器ID號
sudo docker logs -f -t --tail 100 容器名稱或容器ID號
-
6罩扇、使用docker port 命令映射容器的端口號時、報錯Error:No public port 80 published for ... 是什么意思怕磨?
創(chuàng)建鏡像時Dockerfile要指定正確的EXPOSE的端口喂饥、容器啟動時指定publishallport=true
-
7、可以在一個容器中同時運行多個應用進程嗎癌压?
一般不推薦在同一個容器內(nèi)運行多個應用進程、如果有類似需求荆陆、可以通過額外的進程管理機制滩届、比如supervisord來管理所運行的進程
-
8、如何控制容器占用系統(tǒng)資源(cpu被啼、內(nèi)存)的份額帜消?
在使用docker create命令創(chuàng)建容器或使用docker run 創(chuàng)建并運行的時候、可以使用 -c|-cpu-shares[=0]參數(shù)來調(diào)整同期使用cpu的權重浓体、使用-m|-memory參數(shù)來調(diào)整容器使用內(nèi)存的大小
倉庫相關
-
1泡挺、倉庫(Reposittory)、則注冊索引(Index)有何關系命浴?
首先娄猫、倉庫是存放一組關聯(lián)鏡像的集合、比如同一個應用的不同版本的鏡像生闲、注冊服務器是存放實際鏡像的地方、注冊索引則負責維護用戶的賬號、權限这溅、搜索员舵、標簽等管理。注冊服務器利用注冊索引來實現(xiàn)認證等管理
- 2捉兴、從非官方倉庫(如:dl.dockerpool.com)下載鏡像的時候,有時候會提示"Error:Invaild registry endpoint https://dl.docker.com:5000/v1/"?
Docker 自1.3.0版本往后以來蝎困,加強了對鏡像安全性的驗證录语,需要手動添加對非官方倉庫的信任。
DOCKER_OPTS=”–insecure-registry dl.dockerpool.com:5000”
重啟docker服務
配置相關
-
1禾乘、Docker的配置文件放在那里澎埠。如何修改配置?
Ubuntu系統(tǒng)下Docker的配置文件是/etc/default/docker盖袭,CentOS系統(tǒng)配置文件存放在/etc/sysconfig/docker
-
2失暂、如何更改Docker的默認存儲設置?
Docker的默認存放位置是/var/lib/docker,如果希望將Docker的本地文件存儲到其他分區(qū)鳄虱,可以使用Linux軟連接的方式來做弟塞。