# Docker 概述
Docker 是一個開源的應用容器引擎,基于\[Go 語言\]并遵從 Apache2.0 協議開源。
Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。
容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。
Docker 從 17.03 版本之后分為 CE(Community Edition: 社區版) 和 EE(Enterprise Edition: 企業版),我們用社區版就可以了。
## Docker的應用場景
* Web 應用的自動化打包和發布。
* 自動化測試和持續集成、發布。
* 在服務型環境中部署和調整數據庫或其他的后臺應用。
* 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平臺來搭建自己的 PaaS 環境。
## Docker 的優點
Docker 是一個用于開發,交付和運行應用程序的開放平臺。Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。
### 1、快速,一致地交付您的應用程序
Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命周期。
容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:
* 您的開發人員在本地編寫代碼,并使用 Docker 容器與同事共享他們的工作。
* 他們使用 Docker 將其應用程序推送到測試環境中,并執行自動或手動測試。
* 當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然后將其重新部署到測試環境中,以進行測試和驗證。
* 測試完成后,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。
### 2、響應式部署和擴展
Docker 是基于容器的平臺,允許高度可移植的工作負載。Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,云服務上或混合環境中運行。
Docker 的可移植性和輕量級的特性,還可以使您輕松地完成動態管理的工作負擔,并根據業務需求指示,實時擴展或拆除應用程序和服務。
### 3、在同一硬件上運行更多工作負載
Docker 輕巧快速。它為基于虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。Docker 非常適合于高密度環境以及中小型部署,而您可以用更少的資源做更多的事情。
* * *
## 相關鏈接
Docker 官網:[https://www.docker.com](https://www.docker.com/)
Github Docker 源碼:[https://github.com/docker/docker-ce](https://github.com/docker/docker-ce)
- 第一章:docker概述
- 第二章:docker基礎
- 第三章:docker倉庫
- 第四章:docker鏡像
- 第五章:docker容器
- 第六章:端口映射
- 第七章:容器互聯
- 第八章:Dockerfile
- 第九章:DockerCompose
- 第十章:Docker安裝Nginx
- 第十一章:Docker安裝Mysql
- 第十二章:Docker安裝Redis
- 第十三章:Docker安裝PHP
- 第十四章:配置nginx-php-mysql
- 第十五章:DockerCompose構建Lamp
- 搭建Linux服務器環境
- 1.安裝虛擬機VirtualBox
- 2.創建虛擬機
- 3.安裝Ubuntu系統
- 4.Linux文件系統概述
- 5.Linux常用操作命令
- 附錄1.容器管理命令
- run
- start-stop-restart
- rm
- exec
- 附錄2.容器操作命令
- ps
- inspect
- logs
- top
- port
- 附錄3.鏡像倉庫命令
- login
- pull
- push
- search
- 附錄4.鏡像管理命令
- images
- rmi
- tag
- build
- history
- save
- load
- import