docker面試你要知道
1、如何批量刪除或者停止執行的容器?
docker kill/rm `docker ps -aq`
2、如何檢視映象支援的環境變數?
使用sudo docker run IMAGE env
3、本地的映象檔案都存放在哪裡
Docker相關的本地資源存放在/var/lib/docker/目錄下,其中container目錄存放容器資訊,graph目錄存放映象資訊,aufs目錄下存放具體的映象底層檔案。
4、構建Docker映象應該遵循哪些原則?
整體遠側上,儘量保持映象功能的明確和內容的精簡,要點包括:
# 儘量選取滿足需求但較小的基礎系統映象,建議選擇debian:wheezy映象,僅有86MB大小
# 清理編譯生成檔案、安裝包的快取等臨時檔案
# 安裝各個軟體時候要指定準確的版本號,並避免引入不需要的依賴
# 從安全的角度考慮,應用盡量使用系統的庫和依賴
# 使用Dockerfile建立映象時候要新增.dockerignore檔案或使用乾淨的工作目錄
5、容器退出後,通過docker ps 命令檢視不到,資料會丟失麼?
容器退出後會處於終止(exited)狀態,此時可以通過 docker ps -a 檢視,其中資料不會丟失,還可以通過docker start 來啟動,只有刪除容器才會清除資料。
在這裡還要注意開啟容器的時候是否新增了--rm引數
6、如何臨時退出一個正在互動的容器的終端,而不終止它?
按Ctrl+p,後按Ctrl+q,如果按Ctrl+c會使容器內的應用程式終止,進而會使容器終止。
7、很多應用容器都是預設後臺執行的,怎麼檢視它們的輸出和日誌資訊?
使用docker logs,後面跟容器的名稱或者ID資訊
8、使用docker port 命令對映容器的埠時,系統報錯Error: No public port ‘80’ published for …,是什麼意思?
建立映象時Dockerfile要指定正確的EXPOSE的埠,容器啟動時指定PublishAllport=true
9、可以在一個容器中同時執行多個應用程式嗎?
一般不推薦在同一個容器內執行多個應用程式,如果有類似需求,可以通過額外的程式管理機制,比如supervisord來管理所執行的程式
10、如何控制容器佔用系統資源(CPU,記憶體)的份額?
在使用docker create命令建立容器或使用docker run 建立並執行容器的時候,可以使用-c|–cpu-shares[=0]引數來調整同期使用CPU的權重,使用-m|–memory引數來調整容器使用記憶體的大小。
11、倉庫(Repository)、註冊伺服器(Registry)、註冊索引(Index)有何關係?
首先,倉庫是存放一組關聯映象的集合,比如同一個應用的不同版本的映象,註冊伺服器是存放實際的映象的地方,註冊索引則負責維護使用者的賬號,許可權,搜尋,標籤等管理。註冊伺服器利用註冊索引來實現認證等管理。
12 、從非官方倉庫(如: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服務
13、Docker的配置檔案放在那裡。如何修改配置?
Ubuntu系統下Docker的配置檔案是/etc/default/docker,CentOS系統配置檔案存放在/etc/sysconfig/docker
14、如何更改Docker的預設儲存設定?
Docker的預設存放位置是/var/lib/docker,如果希望將Docker的本地檔案儲存到其他分割槽,可以使用Linux軟連線的方式來做。
Docker與虛擬化
15、Docker與LXC(Linux Container)有何不同?
LXC利用Linux上相關技術實現容器,Docker則在如下的幾個方面進行了改進:
移植性:通過抽象容器配置,容器可以實現一個平臺移植到另一個平臺;
映象系統:基於AUFS的映象系統為容器的分發帶來了很多的便利,同時共同的映象層只需要儲存一份,實現高效率的儲存;
版本管理:類似於GIT的版本管理理念,使用者可以更方面的建立、管理映象檔案;
倉庫系統:倉庫系統大大降低了映象的分發和管理的成本;
周邊工具:各種現有的工具(配置管理、雲平臺)對Docker的支援,以及基於Docker的Pass、CI等系統,讓Docker的應用更加方便和多樣化。
16 、Docker與Vagrant有何不同?
兩者的定位完全不同
Vagrant類似於Boot2Docker(一款執行Docker的最小核心),是一套虛擬機器的管理環境,Vagrant可以在多種系統上和虛擬機器軟體中執行,可以在Windows。Mac等非Linux平臺上為Docker支援,自身具有較好的包裝性和移植性。
原生Docker自身只能執行在Linux平臺上,但啟動和執行的效能都比虛擬機器要快,往往更適合快速開發和部署應用的場景。
17、開發環境中Docker與Vagrant該如何選擇?
Docker不是虛擬機器,而是程式隔離,對於資源的消耗很少,單一開發環境下Vagrant是虛擬機器上的封裝,虛擬機器本身會消耗資源。
18 、如何將一臺宿主機的docker環境遷移到另外一臺宿主機?
停止Docker服務,將整個docker儲存檔案複製到另外一臺宿主機上,然後調整另外一臺宿主機的配置即可
19、Docker容器建立後,刪除了/var/run/netns 目錄下的網路名字空間檔案,可以手動恢復它:
# 檢視容器程式ID,比如1234
sudo docker inspect --format='{{. State.pid}}' $container_id
1234
# 到proc目錄下,把對應的網路名字空間檔案連結到/var/run/netns,然後通過正常的系統命令檢視操作容器的名字空間。
相關文章
- 邦芒面試:面試99%會被問到的問題,你一定要知道面試
- 面試前必須要知道的Redis面試題Redis面試題
- 在面試前必須要知道的 Redis 面試內容面試Redis
- 面試前必須要知道的21道Redis面試題Redis面試題
- 面試官:你說你精通 Docker,那你來詳細說說 Dockerfile 吧面試Docker
- Docker常見面試題Docker面試題
- Java面試需要知道的SQL語句語法Java面試SQL
- Docker面試問題與解答Docker面試
- [面試專題]前端需要知道的web安全知識面試前端Web
- 面試 Linux 運維工作至少需要知道哪些知識?面試Linux運維
- 【Docker】Docker基礎知識(面試一籮筐)Docker面試
- 2022年你要知道的軟體測試工作流程
- 程式碼面試需要知道的8種資料結構(附面試題及答案連結)資料結構面試題
- Docker 常見手寫面試題分享,給你安排的明明白白!Docker面試題
- 應聘機器學習工程師?這是你需要知道的12個基礎面試問題機器學習工程師面試
- 除了面試題,你應該知道的面試技巧!面試題
- Java面試必問面試題,你掌握了嗎?Java面試題
- 你需要知道的kafkaKafka
- 你需要知道的SymbolsSymbol
- 在做自動化測試之前你必須要知道的事
- 平時的你VS面試的你面試
- 分散式面試題不用怕,帶你征服面試管分散式面試題
- 面試官問:我把資料庫部署在Docker容器內,你覺得如何?面試資料庫Docker
- 面試官,你再問我 Bit Operation 試試?面試
- 初學asp你要知道哪些
- 演算法工程師必須要知道的面試技能雷達圖演算法工程師面試
- 最新阿里Java面試題,這些面試題你會嗎?阿里Java面試題
- 分享10道Docker容器相關面試題!!!Docker面試題
- 【面試篇】金九銀十面試季,這些面試題你都會了嗎?面試題
- 邦芒面試:想面試成功,這些事你必須知道面試
- 騰訊這套SpringMvc面試題你懂多少(面試必備)SpringMVC面試題
- 寫給即將面試的你面試
- 面試官:你瞭解Webpack嗎?面試Web
- 千圖網,你面試了嗎面試
- 你要知道的 - Spread Operator for objects 技巧Object
- 你要知道的 – Spread Operator for objects 技巧Object
- 你需要知道的HTTP常識HTTP
- 你需要知道的http協議HTTP協議