1. 程式人生 > >docker和k8s

docker和k8s

docker是一個開源的應用容器引起,主要是打包他們的應用以及依賴包到一個可移植的容器.

 Google 公司推出的 Go 語言 進行開發實現

Docker 使用客戶端-伺服器 (C/S) 架構模式,使用遠端API來管理和建立Docker容器。Docker 容器通過 Docker 映象來建立。容器與映象的關係類似於面向物件程式設計中的物件與類

容器技術可實現不同雲端計算之間應用程式的可移植性

更高效的利用系統資源

更快速的啟動時間

一致的執行環境

 開發過程中一個常見的問題是環境一致性問題。由於開發環境、測試環境、生產環境不一致,導致有些 bug 並未在開發過程中被發現。而 Docker 的映象提供了除核心外完整的執行時環境,確保了應用執行環境一致性,從而不會再出現 

“這段程式碼在我機器上沒問題啊” 這類問題。

持續交付和部署

對開發和運維(DevOps)人員來說,最希望的就是一次建立或配置,可以在任意地方正常執行。

使用 Docker 可以通過定製應用映象來實現持續整合、持續交付、部署。開發人員可以通過 Dockerfile 來進行映象構建,並結合 持續整合(Continuous Integration) 系統進行整合測試,而運維人員則可以直接在生產環境中快速部署該映象,甚至結合 持續部署(Continuous Delivery/Deployment) 系統進行自動部署。

而且使用 Dockerfile 使映象構建透明化,不僅僅開發團隊可以理解應用執行環境,也方便運維團隊理解應用執行所需條件,幫助更好的生產環境中部署該映象。

更輕鬆的遷移

由於 Docker 確保了執行環境的一致性,使得應用的遷移更加容易。Docker 可以在很多平臺上執行,無論是物理機、虛擬機器、公有云、私有云,甚至是筆記本,其執行結果是一致的。因此使用者可以很輕易的將在一個平臺上執行的應用,遷移到另一個平臺上,而不用擔心執行環境的變化導致應用無法正常執行的情況。



為了解決開發人員和運維人員之間的協作關係

Docker技術將應用以集裝箱的方式打包交付,使應用在不同的團隊中共享,通過映象的方式應用可以部署於任何環境中。

Docker直接移植於Linux核心之上,通過執行Linux程序將底層裝置虛擬隔離,這樣系統性能的損耗也要比虛擬機器低的多


Docker應用容器的啟停非常高效,可以支援大規模的分佈系統的水平擴充套件,真正給企業開發帶來福音。


方便叢集部署、如果需要部署

直接pull這個映象開個container啟動即可,沒有配置。

java的應用放在docker本身意義不太大,尤其是像jenkins這樣很方便就能啟動的應用
java本身已經有docker的核心特性(集裝箱、資源限制等)

但是docker是跨語言的,是一種更優雅的解決方案,放在docker裡面統一管理也未嘗不可


docker你想就相當於一個新的虛擬機器

你把jenkins裝進去,打包成映象,下次直接用就可以了,docker映象需要些dockerfile製作

你就想象成windows新的系統(docker)我裝好之後 安裝了一英雄聯盟  然後我做成ios映象給你  你安裝後就可以直接用了


docker一個服務一個映象


把映象 部署到 每個伺服器就可以了

docker run一下就可以了