Docker In Action 小記1

命令相關(guān)

  1. detach 使用了-t選項打開的交互式容器 的方法:長安ctrl,然后分別按下P鍵和Q鍵,則當前容器會被detach,并退回宿主機的shell。
  2. docker logs命令可用來顯示容器日志。容器輸入到標準輸出及標準錯誤輸出的內(nèi)容都會被docker logs日志記錄下來。但是docker logs日志不會自動截斷,因此對于長期運行的程序可能會帶來性能問題。
docker logs container_name 
  1. 創(chuàng)建沒有獨立PID命名空間的容器的方法:在docker execdocker run命令中加上 --pid 參數(shù),并將其值設(shè)置為 host

  2. docker create命令:創(chuàng)建一個容器,并使之停留在stop狀態(tài)。使用該命令可以獲取以交互模式運行的docker容器的ID

  3. docker rundocker create命令可以帶上一個--cidfile參數(shù),并賦予其一個不存在的文件名,以將新建的容器的ID輸入到指定文件中。如果指定的文件已經(jīng)存在,則docker不會創(chuàng)建新容器。

  4. 在創(chuàng)建容器時,可以加上--read-only選項,創(chuàng)建一個帶有只讀文件系統(tǒng)的容器。該參數(shù)可確保容器中的文件不會被改變。由于鏡像啟動時可能需要寫入一些文件。若設(shè)置了該參數(shù)可能會導致容器啟動失敗,對此,需要利用-v參數(shù)設(shè)置一些可寫的volumes以供程序正常運行。

  5. 創(chuàng)建容器時,--env-e)參數(shù)能指定容器的環(huán)境變量,格式為

--env VIRABLE_NAME = VIRABLE_VALUE
  1. 創(chuàng)建容器時指定 --restart參數(shù)可以設(shè)定容器在失敗時的重啟策略。多次重試之間,等待時間采用指數(shù)回退發(fā)計算。重啟策略及容器失敗時退出碼詳解可見這篇文章。設(shè)置了次參數(shù)后,若容器運行終止,則容器會進入restarting狀態(tài)。

  2. 容器創(chuàng)建時,可使用--entrypoint參數(shù)覆蓋dockerfile中的ENTRYPOINT指令。此時命令行參數(shù)會成為entrypoint指令的參數(shù)。

  3. 容器創(chuàng)建時,指定--rm參數(shù),可在容器進入exited狀態(tài)后釋放容器占用的資源。

原理相關(guān)

  1. docker容器在八個方面進行了隔離:
  • PID namespace : 進程標識及能力
  • UTS namespace : 主機及域名
  • MNT namespace : 文件系統(tǒng)訪問及結(jié)構(gòu)結(jié)構(gòu)
  • IPC namespace : 通過共享內(nèi)存進行的進程間通信
  • NET namespace : 網(wǎng)絡(luò)訪問及結(jié)構(gòu)
  • USR namespace : 用戶名及標識
  • chroot() : 控制文件系統(tǒng)根路徑
  • cgroups : 資源的保護
  1. PID namespace : 一個可以用來標識進程的數(shù)字的集合

  2. 常見的資源沖突問題:

  • 兩個進程綁定了同一個網(wǎng)絡(luò)端口
  • 兩個進程使用了相同的臨時文件名,該文件名受文件鎖保護無法被共享。
  • 兩個進程需使用不同版本的全局共享軟件庫
  • 兩個相同的程序需要使用相同的PID文件
  • 新的程序修改了已存在的程序使用著的一個全局變量,導致老程序崩潰
  1. docker容器狀態(tài)轉(zhuǎn)換機:


    容器狀態(tài)轉(zhuǎn)換
  2. docker容器的啟動順序需要與docker容器間的依賴順序相反(例如,容器A 有一個link參數(shù)將容器B link到A之上,則容器B需要在容器A之前啟動,否則docker會報錯。)。因此docker不可能構(gòu)建一個有循環(huán)依賴關(guān)系的容器拓撲。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容