在生產環境中運行Docker容器困難不小,但還是能實現的。每天都有越來越多公司開始在生產環境中運行Docker。如同所有的基礎設施一樣,我們建議以小規模入手,然后漸進式地完成遷移。
### 為什么Docker在生產環境如此困難
對生產環境有很多要求:安全可靠的部署、健康檢查、最小或零停機時間、從失敗中恢復的能力(回滾)、一個集中存儲日志的方式、一種分析或調試應用的方式,以及一種聚合監控參數的方式。類似Docker這樣的新技術雖然使用起來非常有趣,但還需要時間來完善。
Docker在可移植性、一致性以及打包具有眾多依賴的服務這些方面非常有優勢。多數團隊會因為以下一個或多個痛點而堅持使用Docker。
- 一個應用的不同部分使用大量不同的依賴。
- 支持使用舊依賴的遺留應用程序。
- 開發團隊與DevOps之間的工作流問題。
本書中我們所采訪的團隊,有一個共同的警示:切勿嘗試在一個組織內讓采用Docker這事一蹴而就。即便運維團隊已經為采用Docker做好了充分的準備,也請記住,過渡到Docker通常意味著將管理依賴的重任推給了開發人員。雖然很多開發人員都渴求這種自主權,以便加快迭代,但并非每位開發人員都有能力或興趣將其列入自己的責任范圍。為了能有一個良好的Docker工作流,還是需要花些時間來轉變企業文化。
在第2章中,我們將闡述Docker的技術棧。
- 版權信息
- 版權聲明
- 內容提要
- 對本書的贊譽
- 譯者介紹
- 前言
- 本書面向的讀者
- 誰真的在生產環境中使用Docker
- 為什么使用Docker
- 我們所說的“生產環境”
- 哪些東西不要Docker化
- 技術審稿人
- 第1章 入門
- 1.1 術語
- 1.2 從開發環境到生產環境
- 1.3 使用Docker的多種方式
- 1.4 可預期的情況
- 第2章 技術棧
- 2.1 構建系統
- 2.2 鏡像倉庫
- 2.3 宿主機管理
- 2.4 配置管理
- 2.5 部署
- 2.6 編排
- 第3章 示例:極簡環境
- 3.1 保持各部分的簡單
- 3.2 保持流程的簡單
- 3.3 系統細節
- 3.4 集群范圍的配置、通用配置及本地配置
- 3.5 部署服務
- 3.6 支撐服務
- 3.7 討論
- 3.8 未來
- 3.9 小結
- 第4章 示例:Web環境
- 4.1 編排
- 4.2 連網
- 4.3 數據存儲
- 4.4 日志
- 4.5 監控
- 4.6 無須擔心新依賴
- 4.7 零停機時間
- 4.8 服務回滾
- 4.9 小結
- 第5章 示例:Beanstalk環境
- 5.1 構建容器的過程
- 5.2 日志
- 5.3 監控
- 5.4 安全
- 5.5 小結
- 第6章 安全
- 6.1 威脅模型
- 6.2 容器與安全性
- 6.3 內核更新
- 6.4 容器更新
- 6.5 suid及guid二進制文件
- 6.6 容器內的root
- 6.7 權能
- 6.8 seccomp
- 6.9 內核安全框架
- 6.10 資源限制及cgroup
- 6.11 ulimit
- 6.12 用戶命名空間
- 6.13 鏡像驗證
- 6.14 安全地運行Docker守護進程
- 6.15 監控
- 6.16 設備
- 6.17 掛載點
- 6.18 ssh
- 6.19 私鑰分發
- 6.20 位置
- 第7章 構建鏡像
- 7.1 此鏡像非彼鏡像
- 7.2 鏡像構建基本原理
- 7.3 小結
- 第8章 存儲Docker鏡像
- 8.1 啟動并運行存儲的Docker鏡像
- 8.2 自動化構建
- 8.3 私有倉庫
- 8.4 私有registry的擴展
- 8.5 維護
- 8.6 對私有倉庫進行加固
- 8.7 保存/載入
- 8.8 最大限度地減小鏡像體積
- 8.9 其他鏡像倉庫方案
- 第9章 CI/CD
- 9.1 讓所有人都進行鏡像構建與推送
- 9.2 在一個構建系統中構建所有鏡像
- 9.3 不要使用或禁止使用非標準做法
- 9.4 使用標準基礎鏡像
- 9.5 使用Docker進行集成測試
- 9.6 小結
- 第10章 配置管理
- 10.1 配置管理與容器
- 10.2 面向容器的配置管理
- 10.3 小結
- 第11章 Docker存儲引擎
- 11.1 AUFS
- 11.2 DeviceMapper
- 11.3 BTRFS
- 11.4 OverlayFS
- 11.5 VFS
- 11.6 小結
- 第12章 Docker 網絡實現
- 12.1 網絡基礎知識
- 12.2 IP地址的分配
- 12.3 域名解析
- 12.4 服務發現
- 12.5 Docker高級網絡
- 12.6 IPv6
- 12.7 小結
- 第13章 調度
- 13.1 什么是調度
- 13.2 調度策略
- 13.3 Mesos
- 13.4 Kubernetes
- 13.5 OpenShift
- 第14章 服務發現
- 14.1 DNS服務發現
- 14.2 Zookeeper
- 14.3 基于Zookeeper的服務發現
- 14.4 etcd
- 14.5 consul
- 14.6 Eureka
- 14.7 Smartstack
- 14.8 nsqlookupd
- 14.9 小結
- 第15章 日志和監控
- 15.1 日志
- 15.2 監控
- 15.3 小結
- DockOne社區簡介
- 看完了