Docker Swarm筆記

作者:劉賓, thomas_liub@hotmail.com
請尊重作者著作權,轉載請注明出處,謝謝!


一 創(chuàng)建Docker Swarm網絡

Docker Swarm網絡由管理節(jié)點和工作節(jié)點組成,通常情況需要最小3個管理節(jié)點和任意多個工作節(jié)點。同時,可以設置管理節(jié)點是否接受任務,從而使管理節(jié)點隔離出來只負責Docker集群工作。

1. 創(chuàng)建Manager節(jié)點

在28服務器上創(chuàng)建一個管理節(jié)點。

docker swarm init --advertise-addr 192.168.1.28

2. 創(chuàng)建工作節(jié)點

在27和29兩個docker host上創(chuàng)建工作節(jié)點。

docker swarm join --token SWMTKN-1-4v9u5pahl5nfne1v88nw6hhe01n3994jzpiq68vmt3eskk0n8a-687qzxnn98c58cv0nw99t0drk 192.168.1.28:2377

3. 創(chuàng)建Overlay網絡

Overlay網絡用來連接跨主機容器。

docker network create --driver overlay --subnet 10.0.9.0/24 mycloud

4. 確認狀態(tài)

最后查詢節(jié)點狀態(tài),查詢網絡狀態(tài),查詢服務狀態(tài)。

docker node ls
docker network ls
docker service ls

二 微服務部署-Docker Swarm

1. 編寫Dockerfile

將應用程序和platform-client庫拷貝到容器內,開放內部8090 HTTP端口,供內部REST訪問。
Dockerfile:

FROM ubuntu:14.05  
RUN mkdir /source  
WORKDIR /source
ADD ./asset-conn/ /source/
RUN rm /source/pl_lib
RUN mkdir /source/pl_lib
ADD ./platform-client/ /source/pl_lib/
RUN apt-get update
RUN apt-get install -y python-pip python-dev build-essential python-psycopg2
RUN pip install -r requirements.txt
USER root  
RUN cp /usr/share/zoneinfo/PRC /etc/localtime
EXPOSE 8090
CMD python main.py

2. 構建Docker Image

Docker build:

docker build -t xxxx:nnnn/test/asset-conn .

3. push到企業(yè)庫

推送構建好的image到企業(yè)容器庫,方便其他節(jié)點部署。

docker login https://xxxx:nnnn  
username: "admin"; password: "admin"
docker push xxxx:nnnn/test/asset-conn:latest

4. 在所有worker node上pull image

docker login https:/xxxx:nnnn  
username: "admin"; password: "admin"
docker pull xxxx:nnnn/test/asset-conn:latest

5. 在lead node上創(chuàng)建服務

可以指定服務需要啟動的應用實例個數,實例占用CPU,內存資源。注意,服務名字是云平臺上服務間訪問的唯一方式,一定要指定正確。

 docker service create --replicas 1 --network mycloud --name asset-conn xxxx:nnnn/test/asset-conn:latest

6. 確認服務正確啟動

在Lead節(jié)點上,運行如下命令:

docker service ls
docker service ps asset-conn
docker service inspect asset-conn

7. 查看log

兩種方式:

  1. 登錄容器,訪問log文件 /source/logs/*.log
  2. 查詢容器所在節(jié)點,在該節(jié)點查詢容器log
    1. docker service ps xxx
    2. 登錄到該docker host
    3. docker ps, 找到該容器
    4. docker logs -f 容器id
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 寫這篇文章主要是為了今后畢業(yè)論文素材上的整理,同時對docker進行鞏固溫習。大綱: docker簡介docker...
    胡圖仙人閱讀 7,755評論 2 96
  • 農歷二月初二,春回大地,萬物復蘇,蟄伏了一冬的昆蟲都從冬眠中蘇醒了,傳說中的龍也從沉睡中醒來,昂首抬頭回...
    悠然見南山_sunshine閱讀 764評論 16 3
  • 實現對象的拷貝 $.type(item)上面的這句代碼只是做了一個數據類型的判斷具體的實現方法可以使用Object...
    趙xiao賽閱讀 102評論 0 0

友情鏈接更多精彩內容