建立你的第乙個Docker Services

2021-08-14 23:39:18 字數 1478 閱讀 4071

前面我們通過建立乙個docker容器來執行我們的web應用,已經初步了解了docker的威力

1. 編寫我們的第乙個docker-compose.yml檔案,它採用了yaml格式,內容如下:

version: "3"

services:

web:

image: demo

deploy:

replicas: 3

resources:

limits:

cpus: "0.2"

memory: 200m

restart_policy:

condition: on-failure

ports:

- "5000:80"

networks:

- webnet

networks:

webnet:

這個檔案會告訴docker做以下這些事情:

a. 拉取上一節建立的demo映象到本地

b.執行3個該映象的容器作為乙個服務,服務名為web,限制每個容器可使用最多20%的cpu和200mb的記憶體

c.在容器非正常退出時,重啟容器

d.對映宿主機的5000埠到web服務容器的80埠

e.指示web服務的3個容器通過名稱為webnet的負載均衡網路共享80埠

f.採用預設配置建立名稱為webnet的網路,它是乙個負載均衡的overlay網路

2.由於服務可能是分布式的,那就涉及到集群管理,那麼在此之前,我們需要先宣告自己是該集群的管理者

$ docker swarm init
3. 部署並執行我們的負載均衡應用, service-demo為應用名

$ docker stack deploy -c docker-compose.yml service-demo

creating network service-demo_webnet

creating service service-demo_web

4. 接下來,我們在瀏覽器訪問宿主機的5000埠,並不斷重新整理,可以看到hostname一直在變,這也意味著我們的http請求被

分散到web服務的3個容器上了

5. 應用擴充套件,譬如我們希望上述web服務的容器變成5個,那麼我們修改docker-compose.yml檔案後,再此執行部署應用的命令即可!

docker採用了原地更新的方式,這意味著不需要kill掉已有的容器,而僅僅是建立2個新的容器

建立你的第乙個Gem

by pilipala published 2011 11 15 你在ruby世界看到到處都是gem。他們幾乎是所有的ruby應用程式的核心。我承認當我試著建立第乙個gem的時候,我有點戰戰兢兢。但我很快就發現了,這玩意簡單得要死。在這個部落格系列中,我將涵蓋從頭開始建立乙個gem的基礎,然後轉移到...

建立你的第乙個 Git 倉庫

雖然 git 確實是被許多重要軟體選作版本控制工具,但是並不是僅能用於這些重要軟體 它也能管理你購物清單 如果它們對你來說很重要的話,當然可以了 你的配置檔案 週報或日記 專案進展日誌 甚至源 使用 git 是很有必要的,畢竟,你肯定有過因為乙個備份檔案不能夠辨認出版本資訊而抓狂的時候。git 無法...

建立你的第乙個 Git 倉庫

雖然 git 確實是被許多重要軟體選作版本控制工具,但是並不是僅能用於這些重要軟體 它也能管理你購物清單 如果它們對你來說很重要的話,當然可以了 你的配置檔案 週報或日記 專案進展日誌 甚至源 使用 git 是很有必要的,畢竟,你肯定有過因為乙個備份檔案不能夠辨認出版本資訊而抓狂的時候。git 無法...