站長資訊網
        最全最豐富的資訊網站

        docker中的三劍客是指什么

        docker中的三劍客是指swarm、compose和machine。compose是用來定義和運行一個或多個容器運行和應用的工具;Machine是一個簡化Docker安裝的命令行工具;Swarm是社區提供的原生支持Docker集群的工具。

        docker中的三劍客是指什么

        本教程操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。

        docker容器中的三劍客是swarm、compose和machine。

        Compose

        1. 概述

        在實際生產環境中,一個應用往往由許多服務構成,而 docker 的最佳實踐是一個容器只運行一個進程,因此運行多個微服務就要運行多個容器。多個容器協同工作需要一個有效的工具來管理他們,定義這些容器如何相互關聯。compose 應運而生。

        compose 是用來定義和運行一個或多個容器(通常都是多個)運行和應用的工具。使用 compose 可以簡化容器鏡像的構建以及容器的運行。

        compose 使用 YAML 文件來定義多容器之間的關系。一個 docker-compose up 就可以把完整的應用跑起來。 本質上, compose 把 YAML 文件解析成 docker 命令的參數,然后調用相應的 docker 命令行接口,從而將應用以容器化的方式管理起來。它通過解析容器間的依賴關系順序地啟動容器。而容器間的依賴關系由 YAML 文件中的 links 標記指定。

        2. compose 配置簡介

        Compose 是對 docker 命令的封裝,默認使用 docker-compose.yml 文件指定各個命令中的參數。
        一個簡單的例子:

        web:   build: .   ports:   - 8080:80   volumes:   - . : /code   links:   - redis redis:   image: redis

        這個 YAML 文件定義了兩個服務: Web 和 Redis, 服務的名稱由用戶自定義。提供 Web 服務的鏡像從 Dockerfile 構建; Web 服務監聽80端口,并和主機的8080端口建立映射;主機的當前目錄掛載到容器里的 /code 目錄上;Web 服務器通過鏈接 Redis 容器來訪問后臺 Redis 數據庫。而 Redis 數據庫服務是通過運行 Redis 鏡像來提供的。

        在 docker-compose.yml 文件中,每個定義的服務都至少包含 buildimage 其中之一,其他命令都是可選的。 build 命令指定了包含 Dockerfile 的目錄,可以是相對目錄也可以是絕對目錄。

        docker-compose.yml 文件中的 "ports" 標記對應于 docker run 的 "-p"選項; "volumes"標記對應 docker run 的 "-v" 選項; "links" 標記對應 docker run 的 "–links"選項。

        此外,image 用于指定服務的鏡像。

        最后,在 docker-compose.yml 所在的目錄下執行 docker-compose up命令,Web 和 Redis 服務都會成功運行起來。

        Machine

        1. 概述

        Docker Machine 是一個簡化Docker 安裝的命令行工具。通過一個簡單的命令行即可在相應的平臺上安裝 Docker,為用戶提供了靈活的功能,使得用戶可以在任一主機上運行 Docker 容器。簡單說,一個 Docker Machine 就是一個 Docker host 主機和經過配置的 Docker client 的結合體。

        技術上講, Machine 是一個框架,比較開放。對于任何提供虛擬機服務的平臺,只要在這個框架下開發針對該平臺的驅動,,Docker Machine 就可以集成到該平臺,在該平臺上執行創建、刪除、啟動、停止等行為。

        Docker Machine 的架構如圖所示

        docker中的三劍客是指什么

        2. Machine 的基本概念和流程

        Docker Machine 首先會創建一個虛擬機并在其上創建一個 Docker host,然后使用Docker client 和 Docker host 通信,從而在 Docker host 上創建鏡像,啟動容器。

        用 Docker Machine 創建虛擬機的時候需要制定相應的驅動,目前支持本機的驅動有 VirtualBox 驅動、VMware 驅動及 Windows 下的 Hyper-V 驅動。除此之外,Machine 還支持云主機的創建。只要開發了符合框架規范的驅動,Docker Machine 就可以支持相應的平臺。

        Machine 創建的 Docker host 的IP地址是所創建的虛擬機的IP地址。
        使用Docker Machine 及 VirtualBox 驅動創建本地虛擬機并搭建 Docker host 的運行流程如下:

        • 執行 docker-machine create --driver virtualbox dev命令。此命令首先創建用于 Docker client 和 Docker host 通信用的 CA 證書。 其次創建 VirtualBox 虛擬機, 并配置用于通信的 TLS 參數及配置網絡, 最后部署 Docker 的運行環境 即 Docker host。

        • 在 Docker client 里運行 eval "$(docker-machine env dev)"命令, 配置用于 Docker host 通信的環境變量。

        • 使用 docker 相關命令創建或啟動相應的容器。

        Swarm

        1. 概述

        Swarm 是 Docker 社區提供的原生支持 Docker 集群的工具。 它可以把多個 Docker 主機組成的系統轉換成為單一的虛擬 Docker 主機。Swarm 對外提供兩種 API。一種是標準的 Docker API,例如 Dokku、Compose、Krane、Flynn、Deis、Jenkins等;另一種是 Swarm 的集群管理 API,用于集群的管理。

        Swarm工具本身不是很成熟,不建議用在生產環境。
        而 Google 開源的Kubernetes 是目前容器生態圈中最受歡迎的編排部署工具。
        Kubernetes 的架構基于有多個 Minion 節點的 Master 服務器。關于 K8s我還沒有接觸到,后面學到后再總結在這里。

        K8s 架構框圖

        docker中的三劍客是指什么

        組件解釋:

        • Master:主控服務器,運行 kebernetes 的管理進程,包括 API 服務、備份控制器和調度器等。
        • Minion: Kubelet 服務和 Docker 引擎的主機, Minion 接受來自 Master 的指令
        • Kubelet:Kubernetes 節點層面的管理器, 運行在 Minion 上
        • Pod:多個容器的集合,并且這些容器運行在同一個 Minion 上。 Pod 是 K8s 的最小管理單元
        • Replication Controller:管理 Pod 的生命周期
        • Service:定義允許容器暴露出的服務和端口,以及通信交互的外部代理
        • Kubecfg:命令行接口,與 Master 交互,請求應用業務的部署、管理

        推薦學習:《docker視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 亚洲无码精品浪潮| 精品人妻无码一区二区色欲产成人| 亚洲国产精品无码久久一线| 91精品国产福利在线观看麻豆| 精品无人区一区二区三区| 久久久精品久久久久特色影视 | 99久久亚洲综合精品网站| 精品人人妻人人澡人人爽人人| 亚洲精品成a人在线观看| 国产免费伦精品一区二区三区| 欧美日韩精品一区二区| 国产亚洲精品精华液| 中文字幕精品无码一区二区三区| 国产精品亚洲αv天堂无码| 精品一区二区久久| 99视频在线观看精品| 国产成人精品视频一区二区不卡| 午夜欧美精品久久久久久久| 无码精品人妻一区| 久久se这里只有精品| 国产免费伦精品一区二区三区| 99久久精品免费国产大片| 中文精品久久久久国产网址| 成人午夜精品视频在线观看 | 国产欧美精品一区二区三区四区| 亚洲国产精品不卡在线电影| 久久国产精品-久久精品| 国产伦精品一区二区三区女| 国产精品视频a播放| 精品视频第一页| 麻豆精品成人免费国产片| 色综合久久精品中文字幕首页| 久久福利青草精品资源站免费| 99久久成人国产精品免费| 99久久精品费精品国产一区二区| 国产精品无码无片在线观看| 国产三级久久久精品麻豆三级| 3D动漫精品啪啪一区二区下载| 500av导航大全精品| 国产亚洲综合成人91精品| 精品国精品国产|