Docker基礎 1.Docker簡介
阿新 • • 發佈:2018-12-14
Docker文件:https://docs.docker.com/
Dcker中文文件:https://docs.docker-cn.com/
一.docker簡介
1.docker是什麼?
1.1docker發展方向
方向 | 語言 | 框架等 |
---|---|---|
JavaEE | java | SpringMVC/SpringBoot/Mybatis |
Docker | Go | Swarm/Compose/Machine/mesos/k8s/—-CI/CD jenkinds整合 |
1.2docker出現的原因
- 開發和運維之間相愛相殺:開發(打包的程式碼) -> 運維(部署)
- 從產品到上線,從作業系統到執行系統,再到應用配置,需要關注很多東西.
- 在各個版本迭代之後,不同版本環境的相容對運維都是考驗
- 運維部署多臺
解決方案:
- 環境配置很麻煩,換臺機器就需要重來一次,能否軟體帶環境安裝
- 將開發環境(ok的,包含程式碼,配置,系統,資料) —–>打包——> 運維(部署):將原始環境一模一樣複製
映象技術:
- 打破”程式即應用”的觀念
- 從系統環境開始,自底至上打包應用,達到應用程式無縫接軌運作.
1.3docker理念
- Docker是基於Go語言實現的雲開源專案。
- Docker是一個開源的容器引擎,它可以幫助我們更快地交付應用。Docker可將應用程式和基礎設施層隔離,並且能將基礎設施當作程式一樣進行管理。使用Docker,可更快地打包、測試以及部署應用程式,並可減少從編寫到部署執行程式碼的週期。
- Docker的主要月標是“Build, Ship and Run Any App,Anywhere”,也就是通過對應用元件的封裝、分發、部署、執行等生命週期的管 理,使使用者的APP (可以是一個WEB應用或資料庫應用等等)及其執行環境能夠做到“一次封裝,到處執行”。
- Linux容器技術的出現就解決了這樣一個問題,而Docker就是在它的基礎上發展過來的。將應用執行在Docker容器上面,而Docker容器在任何作業系統上都是一致的,這就實現了跨平臺、跨伺服器。只需要一次配置好環境,換到別的機子上就可以一鍵部署好,大大簡化了操作.
1.4 logo解讀
鯨魚背上有集裝箱
藍色海洋 — 宿主機系統
鯨魚 —– docker
集裝箱 —– 容器例項
1.5總結
- 解決了執行環境和配置問題軟體容器,方便做持續整合並有助於整體釋出的容器虛擬化技術.
2.docker能做什麼?
之前的虛擬機器技術:
虛擬機器(virtual machine)就是帶環境安裝的一種解決方案。 它可以在一種作業系統裡面執行另一種作業系統,比如在Windows系統裡面執行Linux系統。應用程式對此亳無感知,因為虛擬機器看上去跟真實系統一模一樣,而對於底層系統來說,虛擬機器就是一個普通檔案,不需要了就刪掉,對其他部分毫無影響。這類虛擬機器完美的運行了另一套系統,能夠使應用程式,作業系統和硬體三者之間的邏輯不變。
缺點:
- 資源佔用多
- 冗餘步驟多
- 啟動慢
容器虛擬化技術:
由於前面虛擬機器存在這些缺點,Linux發展出了另一種虛擬化技術: Linux容器(Linux Containers, 縮寫為LXC)。
Linux容器不是模擬一個完整的作業系統,而是對程序進行隔離。有了容器,就可以將軟體執行所需的所有資源打包到一個隔離的容器中。容器與虛擬機器不同,不需要捆綁一整套作業系統,只需要軟體工作所需的庫資源和設定。系統因此而變得高效輕量並保證部署在任何環境中的軟體都能始終如一地執行。
- Docker 和傳統虛擬化方式的不同之處:
- 傳統虛擬機器技術是虛擬出一套硬體後,在其上執行一個完整作業系統,在該系統上再執行所需應用程序.
- 容器內的應用程序直接運行於宿主的核心,容器內沒有自己的核心,而且也沒有進行硬體虛擬。因此容器要比傳統虛擬機器更為輕便。
- 每個容器之間互相隔離,每個容器有自己的檔案系統,容器之間程序不會相互影響,能區分計算資源。
- 開發/運維(DevOps):一次構建,隨處執行
- 更具啊的應用交付和部署
- 更便捷的升級和擴縮性
- 更簡單的系統運維
- 更高效的技算資源利用
企業級運用:
- 微博
美團
3.去哪兒下載
- 官網:
- docker官網:https://www.docker.com/
- docker中文網站:https://www.docker-cn.com/
- 倉庫:
- docker hub:https://hub.docker.com/