DevOps - Docker環境搭建圖文教程 - Docker Swarm篇

Docker是開源的應用容器引擎,能很好地支持DevOps中相當重要的云計算,為了搭建完整的應用級別的Docker環境,我們一起開始探索吧。

本篇知識點如下,將分為三部分來介紹:

Registry(v2)

Shipyard

Docker Swarm(本篇)


先來看兩張圖

Docker Swarm是用于創建Docker主機(運行Docker守護進程的服務器)集群的工具,使用Swarm操作集群,會使用戶感覺就像是在一臺主機上進行操作。

在我們演示之前,請準備:至少2臺可以互相聯網的機器,并安裝好Docker 1.12或以上版本。

1 初始化 Swarm

在一臺機器上,通過運行init命令,初始化一個Leader(默認端口:2377)

若忘記token,可以運行以下命令查詢manager的tokern

2 加入集群

在其他機器上通過運行 docker swarm join 命令來加入一個集群,token在第1步中查看

3 在Leader機器上查看

可以看到節點已加入集群,也可以在節點機器上運行此命令

4 創建服務

docker service create --name my_web --replicas 4 --publish 9001:80 nginx

創建服務

稍微講解一下參數

docker service create:創建服務的命令

--name my_web:指定服務的名字

--replicas 3:指定創建容器的實例數量

--publish 9001:80:將主機的9001端口映射到容器的80端口上

nginx:鏡像名稱

注意,可以在集群中任意一臺機器上進行操作

運行完后,我們可以通過:docker service ls 來查看服務的運行狀態

服務狀態
在其中一臺主機上運行 docker ps -a 查看
在另一臺主機上運行 docker ps -a 查看

可以看到在第一臺主機上,有my_web.2, my_web.3兩個容器實例正在運行,而在另外一臺主機上有my_web.1, my_web.4兩個容器實例在運行(隨機分配的)

5 Scale 橫向擴展

在需要擴展服務里,可能通過 docker service update命令來進行操作:

docker service update my_web --replicas 5

這個命令將原來的my_web服務的實例數變成了:5

運行擴展命令后可以快速驗證

使用Docker Swarm的神奇之處在于,在任意一臺主機上進行訪問,都可以訪問創建的nginx服務,原因是docker會在iptables中注冊相應的端口,我們可以在任意主機上查看iptable來驗證

iptables -nL --line-number

另一個使用Docker Swarm的神奇之處,是docker會幫我們管理容器,比如我們剛剛調整了容器的實例個數為:5,那docker swarm就會確保總是有5個可用的實例在運行,我們可以通過人為地停止某一個容器實例,過一會兒,我們就會發現,docker swarm幫我們創建了另外一個新的容器實例,補全了5個。而之前那個被中止的容器(尸體)還在,我們可以對其進行檢查操作。

6 刪除服務

最后,當我們不需要服務里,可以通過 docker service rm命令來移除服務

可以使用 docker service ls, docker ps -a 來驗證

總之,Docker Swarm能非常方便地幫我們編排我們的容器實例,操作也相當的簡單。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 要擴大公司的業務規模,你必須采用與此前截然不同的工作方式。在公司的發展過程中,會遇到若干個轉折點,每次都要經歷發現...
    阿東咚咚咚閱讀 673評論 0 1
  • 快到我們的一周年了,時間過得好快啊,去年大概這個時候吧,我收到了你寄來的生日禮物和一周年紀念日禮物。有你寫給我的日...
    撒啦嗨吆閱讀 174評論 0 0
  • 曾經把不開心的過往寫在紙上,然后用火機點燃那張紙 把紙燒到全化為灰燼,就權且當是忘記了那些過往,所以心情便舒坦了許...
    卞音閱讀 156評論 0 0
  • 21世紀是一個完全意義上的信息時代,在商業領域不斷創新的信息技術與信息應用,將商業環境推向更加完全的智能化、知識化...
    HR馬閱讀 916評論 0 0