聽到公司技術在討論Docker三劍客,都是什麼?怎麼用的?

急速馬力快de源碼客


docker-machine

docker-machine是解決docker運行環境問題。

docker技術是基於Linux內核的cgroup技術實現的,那麼問題來了,如果在非Linux平臺上使用docker技術需要依賴安裝Linux系統的虛擬機。

docker-machine就是docker公司官方提出的,用於在各種平臺上快速創建具有docker服務的虛擬機的技術。你可以把它理解為virtualbox或者vmware,最開始在win7上用得比較多,但是win10開始自帶了hyper-v虛擬機,已經不再需要docker-machine了,docker可以直接運行在安裝了Linux系統得hyper-v上。

docker-compose

dcoker-compose主要是解決本地docker容器編排問題。

一般是通過yaml配置文件來使用它,這個yaml文件裡能記錄多個容器啟動的配置信息(鏡像、啟動命令、端口映射等),最後只需要執行docker-compose對應的命令就會像執行腳本一樣地批量創建和銷燬容器。

docker-swarm

docker-swarm是解決多主機多個容器調度部署得問題。

swarm是基於docker平臺實現的集群技術,他可以通過幾條簡單的指令快速的創建一個docker集群,接著在集群的共享網絡上部署應用,最終實現分佈式的服務。

swarm技術相當不成熟,很多配置功能都無法實現,只能說是個半成品,目前更多的是使用Kubernetes來管理集群和調度容器。

總結:

如果你是在非Linux環境下考慮使用docker-compose,當然我更推薦使用hyper-v或者virtualbox。

如果你需要同時操作多個容器,或者希望使用配置文件記錄容器啟動命令參數,那麼推薦使用docker-compose。

如果你需要在多臺主機上部署docker容器,並對其進行調度,那麼swarm是一種選擇,當然更推薦Kubernetes。






通信人的自我修養



1、docker-machine

docker-machine是解決docker運行環境問題。

docker技術是基於Linux內核的技術實現的,那麼問題來了,如果在非Linux平臺上使用docker技術需要依賴安裝Linux系統的虛擬機。docker-machine就是docker公司官方提出的,用於在各種平臺上快速創建具有docker服務的虛擬機的技術。你可以把它理解為virtualbox或者vmware,最開始在win7上用得比較多,但是win10開始自帶了hyper-v虛擬機,已經不再需要docker-machine了,docker可以直接運行在安裝了Linux系統得hyper-v上。

2、docker-compose

dcoker-compose主要是解決本地docker容器編排問題。

一般是通過yaml配置文件來使用它,這個yaml文件裡能記錄多個容器啟動的配置信息(鏡像、啟動命令、端口映射等),最後只需要執行對應的命令就會像執行腳本一樣地批量創建和銷燬容器。

3、docker-swarm

docker-swarm是解決多主機多個容器調度部署得問題。swarm是基於docker平臺實現的集群技術,他可以通過幾條簡單的指令快速的創建一個docker集群,接著在集群的共享網絡上部署應用,最終實現分佈式的服務。swarm技術相當不成熟,很多配置功能都無法實現,只能說是個半成品,目前更多的是使用Kubernetes來管理集群和調度容器。總結:

如果你是在非Linux環境下考慮使用docker-compose,當然我更推薦使用hyper-v或者virtualbox。

如果你需要同時操作多個容器,或者希望使用配置文件記錄容器啟動命令參數,那麼推薦使用docker-compose。

如果你需要在多臺主機上部署docker容器,並對其進行調度,那麼swarm是一種選擇,當然更推薦Kubernetes。


分享快樂的分享


Docker最近很火,鑑於工作需要,我也瞭解了一下,下面是我瞭解到的內容,如有錯誤,歡迎指正。

Docker 是一個開源的應用容器引擎,基於 Go 語言 並遵從 Apache2.0 協議開源。Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。

docker三劍客分別指docker machine,dcoker compose,docker swarm

  • docker machine是解決docker運行環境問題。

    Docker Machine是一種工具,可讓您在虛擬主機上安裝Docker Engine,並使用命令管理主機。您可以使用Machine在本地Mac或Windows盒,公司網絡,數據中心或Azure,AWS或DigitalOcean等雲提供商上創建Docker主機。

    使用 docker-machine 命令,您可以啟動,檢查,停止和重新啟動託管主機,也可以升級 Docker 客戶端和守護程序,以及配置 Docker 客戶端與您的主機進行通信。

    您可以使用Docker Machine來執行以下操作:

    • 在Mac或Windows上安裝並運行Docker
    • 設置和管理多個遠程Docker主機
    • 供應集群

  • dcoker compose主要是解決本地docker容器編排問題。

    docker-compose 是一個用戶定義和運行多個容器的 Docker 應用程序。在 Compose 中你可以使用 YAML 文件來配置你的應用服務。然後,只需要一個簡單的命令,就可以創建並啟動你配置的所有服務。

    使Compose有效的功能包括:

    • 單個主機上的多個隔離環境
    • 創建容器時保留卷數據
    • 僅重新創建已更改的容器
    • 變量和環境之間的合成移動
  • docker swarm是解決多主機多個容器調度部署得問題。
    Docker Swarm是Docker的本機集群。它將Docker主機池變成單個虛擬Docker主機。因為Docker Swarm提供了標準的Docker API,所以任何已經與Docker守護程序通信的工具都可以使用Swarm透明地擴展到多個主機。


    注:圖片來自網絡,侵刪


雪覆滿城


一個非常好的問題。我是工作多年的Web應用架構師,來回答一下這個問題。歡迎關注我,瞭解更多IT專業知識。


1,Docker是一個開源的應用容器引擎,將應用以及依賴打包到一個可移植的鏡像中,然後發佈到服務器上,並且可以實現虛擬化,有助於快捷高效的交付應用。


Docker三個核心概念:

  • 鏡像Image,應用和依賴打包生成的文件,類似安裝包。
  • 容器Container,鏡像創建運行應用的示例。
  • 倉庫Repository,Docker存放鏡像文件的地方。


2,資源編排Docker-compose定義和運行多個容器組成的應用系統,通過docker-compose.yml文件聲明各個服務,作為一個整體來完成應用的創建和啟動。


3,Swarm是Docker官方提供的集群管理工具,將Docker節點統一管理組織,以服務為調度單元,支持動態擴容等特性,和Kubernetes(k8s)相比,更加輕量。


延伸說下k8s和Swarm,在生產環境中使用k8s較多,但在本地部署測試環境時,一直習慣使用Swarm,輕量方便,而且和Docker是一體的,不需要額外的安裝配置。


急速馬力快de源碼客


docker,docker swarm,docker machine


分享到:


相關文章: