Docker容器技術 學習筆記彙總
“如果你不出去走走,你就會以為這就是全世界。”
一直在嵌入式領域,這次遇到Docker算是長了見識。剛好公司同事們對這塊瞭解地不多,那就把Docker容器技術的學習梳理成系列筆記,讓其他夥伴少走一些彎路。
容器技術由來已久,比如 Linux Containers,簡單來說,以前伺服器上可能需要跑不同的應用,而不同應用可能需要多個虛擬機器,但是虛擬機器一多,伺服器就變得很卡。這時候Docker就派上用場了。
。但是真正讓容器進入人們視野的,是 Docker。就像Apple推出iPhone讓智慧手機變成主流,2013 年開源的 Docker 一發布就收到業界的追捧,程式猿們蜂擁而上。
Docker 是個劃時代的開源專案,它徹底釋放了計算虛擬化的威力,極大提高了應用的執行效率,降低了雲端計算資源供應的成本! 使用 Docker,可以讓應用的部署、測試和分發都變得前所未有的高效和輕鬆!
無論是應用開發者、運維人員、還是其他資訊科技從業人員,都有必要認識和掌握 Docker,以在有限的時間內做更多有意義的事。
學習路線
學習最重要的是規劃好路線,有條不紊,循序漸進。
Docker的學習有兩個材料:
所以我的意見是,兩者結合著看,官網是很詳細,但缺少一些過渡性的梳理。書本是楊保華等大神的梳理,且更新也很及時。
第一部分 Docker入門
第一部分,將圍繞 官網的Get Started入門教程 的6個步驟來實現一個例子,藉助這個例子瞭解Docker,並體會其美妙的地方。
Part 1 基礎瞭解 (Get set up and oriented)
第一篇筆記,先總體介紹Docker,及它與虛擬機器技術的區別,最後再介紹Docker的最基礎的三大元件概念。
Docker目前(201709)在windows平臺僅支援這兩個系統:Windows 10 and on Windows Server 2016。而其他系統則不使用Hyper-V技術,需要使用虛擬機器來模擬實現,因此效果肯定不好。考慮目前這兩個系統在伺服器用的少,而Ubuntu上全部支援,畢竟docker是基於linux核心開發出來的,因此建議採用 Docker for Ubuntu。
Part 2 構建和執行第1個app (Build and run your first app)
這篇筆記涉及Dockerfile映象建立,容器中執行和停止映象,倉庫中分享和拉取映象等,涵蓋了Docker容器的常見操作,是特別經典的例子,值得好好學習。另外本文結合自身實際操作,對於國內源、命令中’.’ 等容易產生疑問的地方做了一些說明,幫助初學者少走一些彎路。
Part 3 將app轉為可拓展的服務 (Turn your app into a scaling service)
這篇筆記主要演示如何使用 docker-compose.yml 來定義應用服務,docker-compose 可以很方便地對 app 進行調整,並且很容易地實現負載均衡。
Part 4 Span your service across multiple machines
本篇筆記主要介紹 Docker 叢集 Swarm 的功能和使用。前面章節都是在單主機上使用Docker,這個章節將學會在叢集中使用Docker容器。
Part 5 Add a visitor counter that persists data
Part 6 Deploy your swarm to production
第二部分 Docker服務編排 Docker Compose
日常工作中,經常會碰到需要多個容器相互配合來完成某項任務的情況。Compose 恰好滿足了這樣的需求。它允許使用者通過一個單獨的 dockercompose.yml 模板檔案來定義一組相關聯的應用容器為一個專案。
第三部分 Docker實戰
Docker實戰 LoRaServerProject
這篇文章將以我目前正在研究的 lora-server 專案為例,研究下 Docker 在具體專案的實戰應用,感受下 Docker 的魅力。