必知必會的 Docker 核心知識

自 2013 年起,隨着 Docker 的正式面世,容器技術迅速成爲了基礎技術領域中的熱門。而在近兩三年中,隨着容器編排領域的混戰結束,Kubernetes 已經成爲了容器編排領域事實上的標準。

有一些人存在誤解,認爲 Kubernetes 的出現取代了 Docker。但事實上,Docker 與 Kubernetes 是相輔相成的。Kubernetes 使用 Docker 作爲容器運行時,用來啓動應用;當 Docker 容器規模變大時,自然是需要有容器編排工具進行管理的。引用最近一次的網絡研討會後的文章內容:

In fact, Kubernetes is better with Docker. And Docker is better with Kubernetes.

無論在使用 Docker 或是 Kubernetes 亦或者是使用基於這些技術的其他衍生技術時,都有可能會遇到一些意料之外的情況,當問題發生時,我們總是希望可以快速定位問題,並且從根本上解決問題。

一般情況下,上層的問題比較容易解決,但如果問題發生在運行時/Docker 或容器上時,如果沒有系統性的知識,很難從根本上解決問題;當然,有些時候通過搜索引擎可以幫我們找到一些問題的解決辦法,但如果不將其徹底搞懂,以後遇到類似問題可能還是沒法快速解決。

我自 Docker 0.9 版本時開始學習和使用,自己踩過了很多坑,活躍在社區中,也幫別人解決了很多問題。現在我的新專欄《Docker 核心知識必知必會》正式上線了,共 51 節,從 7 個核心維度來 系統性 的講解 Docker 容器技術的核心特性及原理,實踐與源碼相結合;部分內容會深入到 Linux 內核源碼,以此來建立起從內核到 Docker 容器技術的知識體系。

我希望藉由這個課程,將 Docker 容器技術的本質和思想與我在開發和運維 Docker 過程中對其原理和實踐經驗的總結講清楚,並將結合着實踐和核心特性的原理,加深對 Docker 容器技術的理解

因此,我把課程劃分成了三大模塊:

  • Docker 入門: 這個模塊分成了三篇內容,通過第一篇,帶你瞭解 Docker 容器技術生態的發展脈絡;第二篇,是爲剛入門 Docker 的讀者準備的,也是爲後續章節進行鋪墊;第三篇是很多讀者或公司都常會困惑的問題,Docker 與 Linux 內核兼容性如何,要上生產環境該選擇哪個版本?我會在這一篇中與你分享,讓你不再困惑。
  • Docker 核心特性:這個大模塊圍繞 Docker 的核心知識點,拆分成了 7 大部分,分別是容器、鏡像、CI/CD、架構、存儲、安全和網絡。這些是該課程的核心內容,在這部分內容中,我將基本按照從實踐到原理的方式進行組織,讓你從根兒上知道如何用,以及爲什麼這麼用。

    • 在容器篇,我會先給你介紹容器生命週期管理相關的內容,那你對容器的使用有個基本認識;之後會對容器資源進行管理;並對容器的核心進行深入剖析;最後動手來自己寫容器。
    • 在鏡像篇,我會給你介紹鏡像完整的生命週期管理;鏡像是如何構建與分發的;如何使用 Dockerfile 進行鏡像構建;並介紹 Docker 的下一代構建系統是如何提速近 10 倍的;接下來結合我的實際鏡像爲你介紹 Dockerfile 的優化和最佳實踐;最後分別深入源碼爲你介紹鏡像構建、分發的原理,以及認證流程和原理。
    • 在 CI/CD 篇,我會爲你介紹如何將 Docker 與 CI/CD 結合,併爲你介紹適用於生產環境使用的 CI/CD pipeline,希望能爲你建設 CI/CD 提供一些啓發。
    • 架構篇中我會結合源碼給你介紹 Docker 的核心架構,以及其是如何協作的;Docker 提供了一種可擴展的 Plugin 機制,在特定場景下使用 Plugin 擴展 Docker 也是一種不錯的選擇;接下來會結合實際經驗爲你介紹容器監控和日誌方面的具體實踐方案,希望能爲你在實際使用中提供一個參考;最後會 與你分享我所總結的 Docker 相關問題的定位及調試手段 正確的方法能讓你排查問題的效率翻倍。
    • 存儲篇主要介紹 Docker 中 volume 的使用;以及如何進行數據備份和恢復;最後會深入內部爲你介紹現在 Docker 最推薦的 Overlay2 存儲驅動的工作原理。
    • 安全篇會涉及鏡像和容器運行時的安全;以及會涉及一些的 Linux 內核安全相關的知識,爲你詳細介紹如何利用 Linux 內核的安全模塊爲 Docker 保駕護航。
    • 網絡篇除了介紹基礎網絡知識外,還會爲你介紹如何定製 bridge 網絡;iptables 始終是一個很核心的知識點,我會爲你將 Docker 與 iptables 梳理清楚,以及如何自定義的進行網絡管理;最後會爲你詳細介紹 docker-proxy ,Docker 內部 DNS 以及 Docker 的核心網絡知識,讓網絡不再成爲一個攔路虎。
  • 生態擴展:不得不說“開源”是 Docker 成長迅速的關鍵,在這個模塊中,我將爲你介紹 Docker 與 Kubernetes 間的聯繫,以及容器生態中的其他組件;與你分享如何參與到 Docker 容器生態內,當然這裏也會涉及到 Docker 現在的代碼組織相關的內容;最後將與你探討 Docker 生態未來的走向。

專欄新上線,限時優惠!可直接訪問鏈接 https://gitbook.cn/gitchat/co... 參與學習,或掃描下方圖片二維碼參與:

PS:可以生成自己的分享海報,得 24.75

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章