# 序言

> #### 手冊閱讀須知:本手冊僅針對Docker部署版本(使用左右鍵(`<-- 和 -->`)翻頁閱讀)
* * *
# Docker——使用說明

### V1.0版本由[看云](http://www.hmoore.net/)獨家贊助發布
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的[鏡像](https://baike.baidu.com/item/%E9%95%9C%E5%83%8F/1574?fromModule=lemma_inlink)中,然后發布到任何流行的[Linux](https://baike.baidu.com/item/Linux?fromModule=lemma_inlink)或[Windows](https://baike.baidu.com/item/Windows/165458?fromModule=lemma_inlink)操作系統的機器上,也可以實現[虛擬化](https://baike.baidu.com/item/%E8%99%9A%E6%8B%9F%E5%8C%96/547949?fromModule=lemma_inlink)。容器是完全使用[沙箱](https://baike.baidu.com/item/%E6%B2%99%E7%AE%B1/393318?fromModule=lemma_inlink)機制,相互之間不會有任何接口。
> Docker是基于Go語言實現的云開源項目,Docker的主要目標是“Build,Ship and Run Any App,Anywhere”,也就是通過對應用組件的封裝、分發、部署、運行等生命周期的管理,使用戶的APP(可以是一個WEB應用或數據庫應用等等)及其運行環境能夠做到“一次鏡像,處處運行”。
## 主要特性:
> ### **`Docker的網站上提到了docker的典型場景`**:
* Automating the packaging and deployment of applications(使應用的打包與部署自動化)
* Creation of lightweight, private PAAS environments(創建輕量、私密的PAAS環境)
* Automated testing and continuous integration/deployment(實現自動化測試和持續的集成/部署)
* Deploying and scaling web apps, databases and backend services(部署與擴展webapp、數據庫和后臺服務)
由于其基于LXC的輕量級虛擬化的特點,docker相比KVM之類最明顯的特點就是啟動快,資源占用小。因此對于構建隔離的標準化的運行環境,輕量級的PaaS(如dokku), 構建自動化測試和持續集成環境,以及一切可以橫向擴展的應用(尤其是需要快速啟停來應對峰谷的web應用)。
1. 構建標準化的運行環境,現有的方案大多是在一個baseOS上運行一套puppet/chef,或者一個image文件,其缺點是前者需要base OS許多前提條件,后者幾乎不可以修改(因為copy on write 的文件格式在運行時rootfs是read only的)。并且后者文件體積大,環境管理和版本控制本身也是一個問題。
2. PaaS環境是不言而喻的,其設計之初和dotcloud的案例都是將其作為PaaS產品的環境基礎
3. 因為其標準化構建方法(buildfile)和良好的REST API,自動化測試和持續集成/部署能夠很好的集成進來
4. 因為LXC輕量級的特點,其啟動快,而且docker能夠只加載每個container變化的部分,這樣資源占用小,能夠在單機環境下與KVM之類的虛擬化方案相比能夠更加快速和占用更少資源
> ### **`Docker原理`**:
Docker核心解決的問題是利用LXC來實現類似VM的功能,從而利用更加節省的硬件資源提供給用戶更多的計算資源。同VM的方式不同,[LXC](https://baike.baidu.com/item/LXC?fromModule=lemma_inlink)其并不是一套硬件虛擬化方法 - 無法歸屬到全虛擬化、部分虛擬化和半虛擬化中的任意一個,而是一個操作系統級虛擬化方法, 理解起來可能并不像VM那樣直觀。所以我們從虛擬化到docker要解決的問題出發,看看他是怎么滿足用戶虛擬化需求的。
> ### **`Docker部署安全性`**:
也有專家將Docker安全問題的實質定位于配置安全,認為Docker的問題是很難配置一個安全的容器。<br><br>雖然Docker的開發人員通過創建非常小的容器來降低攻擊面,但問題在于大型企業內部在生產環境中運行Docker容器的員工需要有更多的可見性和可控性。<br>
專家認為,大約90%的外部網絡攻擊并不是超級復雜的,攻擊者多是利用了管理員的行為漏洞,比如配置錯誤或者未及時安裝補丁。<br>
因此,企業在部署數千或數萬臺容器時,能夠確保這些容器都遵守企業安全策略進行配置是至關重要的事情。<br>
為解決這個問題,就需要增加Docker容器部署的實時可見性,同時實施企業制定的安全策略。
> ### **`Docker安全中心`**:
在新的功能中有硬件的部分,可以 跨任何基礎架構,允許開發和隨后的升級中的數字編碼簽名。構建在Docker Trust框架之上用來進行鏡像發布者認證,同時進行新的鏡像掃描和官方漏洞檢測,以便能夠更好地理解容器內部是什么。<br><br>
命名空間是本周發布的另外一個Docker安全升級。允許IT運用來為基于用戶群組的容器指派授權,約束了主機的訪問根源,并指定了系統管理員,限制了群組對于指定服務的訪問。<br><br>
鏡像掃描對于Docker Hub上的所有官方版本都可用,同時命名空間和硬件簽名則在Docker的實驗渠道提供。<br><br>
安全問題仍舊是容器采納要解決的最大問題,尤其是如果大量容器是便攜的,IDC研究經理Larry Carvalho說道。通過硬件解決這個問題很明智,因為這樣更難以介入,并且提供了未來可能被使用的大量容器的效率。<br><br>
Carvhalho說:“他們還應該解決的一個問題是容量,你沒有辦法在軟件層面做大量的安全,因為要有很多開支。”
- Docker容器化部署使用說明書
- 環境部署
- Windows系統
- Windows部署Docker
- 安裝過程可能碰到的問題總結
- Docker部署環境
- Docker hub操作
- Docker 部署 laravel5.5問題總結
- Docker處理中文亂碼問題
- Linux系統
- Centos7.2部署Docker
- Linux部署Docker準備前工作
- 部署docker問題總結
- Linux部署Docker粗略筆記
- 安裝git
- Docker命令大全
- 問題
- php7.4 安裝xlswriter擴展
- php7.2 DockerFile文件
- dockerFile和docker-composer區別
- docker-compose的使用
- docker-compose的使用問題總結
- docker-compose
- Windows系統
- docker-compose.yml編寫
- nginx目錄如下
- conf.d
- default.conf
- nginx.conf
- php目錄如下
- Dockerfile
- redis目錄如下
- redis.conf
- docker-compose使用說明
- Linux系統
- /workspace/html/config_dev
- html
- index.html
- index.php
- nginx
- conf
- nginx.production.conf
- conf.d
- default.conf
- log
- access.log
- error.log
- Dockerfile
- php
- conf
- php.production.ini
- php-fpm.conf
- log(目錄)
- php-fpm.d
- www.conf
- supervisor
- conf
- log
- Dockerfile
- .env
- docker-compose.yml