日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker swarm 笔记

發布時間:2023/12/2 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker swarm 笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

防火墻開放端口:

  • TCP port 2377為集群管理通信
  • TCP and UDP port 7946 為節點間通信
  • UDP port 4789 為網絡間流量

創建attachable network

docker network create --driver=overlay --attachable mynet-core

查看網絡

docker network ls

  

在manager1上創建swarm集群:

$ docker swarm init --advertise-addr 192.168.0.251

--advertise-addr選項表示管理節點公布它的IP是多少。其它節點必須能通過這個IP找到管理節點。

運行docker info來查看當前swarm集群的狀態:

$ docker info 

查看節點信息

$ docker node ls

查看加入節點指令 

$ docker swarm join-token worker To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-3bxotwbwtvhtzawo548h738h2rjs4s8hgj8ah6cxfydb775grz-cjzodty09sti7eb5inmdg4err 192.168.0.251:2377

加入節點

ssh到worker2 ,使主機2?加信集群

$ docker swarm join --token SWMTKN-1-3bxotwbwtvhtzawo548h738h2rjs4s8hgj8ah6cxfydb775grz-cjzodty09sti7eb5inmdg4err 192.168.0.251:2377

在swarm集群上部署一個服務

$ docker service create --network mynet-core --replicas 1 --name gpsserver -p 10111:10111 -p 15678:15678 ?--mode global --update-delay 10s gpsserver:1.0

和運行容器一樣,可綁定多個端口

--name表明服務名字是gpsserver?

--replicas 表示期望1個服務實例

--mode?模式?replicated or global(默認replicated,如果設置為global,無需設置 --replicas ,每個節點下,都會運行一個task)

--publish published=53,target=53,protocol=udp,mode=host (綁定端口不使用簡寫使用host模式,端口不轉發,不使用swarm的負載均衡功能,配合nginx等第三方工具)

--network mynet-core?attachable network是一個非常重要的特性。你最好使用它,否則docker run創建的容器將無法接入Swarm集群的網絡。

gpsserver:1.0?鏡像與標簽

?

在服務部署階段就指定滾動升級策略

  • --update-delay配置了更新服務的時間間隔,你可以指定時間T為秒是Ts,分是Tm,或時是Th,所以10m30s就是10分30秒的延遲
  • 默認的調度器scheduler一次更新一個任務.你可以傳入參數--update-parallelism來配置調度器同時更新的最大任務數量
  • 默認的當一個更新任務返回RUNNING狀態后,調度器才調度另一個更新任務,直到所有任務都更新了。如果更新過程中任何任務返回了FAILED,調度器就會停止更新。你可以給命令docker service create or docker service update配置配置--update-failure-action,來配置這個行為。

?

至此所有節點都可訪問服務了

查看運行的服務

$ docker service ls

  

查看優化顯示的服務詳情

$ docker service inspect --pretty 060zo3u0g3mj

060zo3u0g3mj是服務id

查看到哪些節點在運行該服務實例

$ docker service ps 060zo3u0g3mj

縮放一個或多個復制服務

$ docker service scale 060zo3u0g3mj=2

刪除服務

$ docker service rm 060zo3u0g3mj

動態更新服務

$ docker service update --image gpsserver:2.0 gpsserver(或服務id)

使用--mount-add或--mount-rm選項可以添加或刪除服務的bind-mount或卷

回滾上個一個配置或版本

$ docker service update --rollback gpsserver

  

#創建nginx服務

#docker pull hub.test.com:5000/almi/nginx:0.1 #下載私有倉庫鏡像 docker service create --name nginx --replicas 2 --publish 80:80 hub.test.com:5000/almi/nginx:0.1 #--network=swarm_test #replicas 2 創建2個容器,hub.test.com為私有倉庫

#查看swarm集群中的服務

?

docker service ls docker service ps nginx

#kill其中一個容器

docker kill 96e6bccc2209 #等會自動啟動一個新的容器

#修改服務實例數量為3

docker service scale nginx=3

#刪除nginx服務

docker service rm nginx

#刪除swarm節點

docker swarm leave --force #node docker node rm -f <node> #manager

#docker swarm 常用命令

docker swarm init #初始化集群 docker swarm join-token worker #查看工作節點的 token docker swarm join-token manager #查看管理節點的 token docker swarm join #加入集群中

? ? docker swarm update --task-history-limit 2? #?更改任務歷史記錄保留限制

  

#docker node 常用命令

docker node ls #查看所有集群節點 docker node rm #刪除某個節點(-f強制刪除) docker node inspect ##查看節點詳情 docker node demote #節點降級,由管理節點降級為工作節點 docker node promote #節點升級,由工作節點升級為管理節點 docker node update #更新節點 docker node ps #查看節點中的 Task 任務

  

#docker service 常用命令

docker service create #部署服務 docker service inspect #查看服務詳情 docker service logs #產看某個服務日志 docker service ls #查看所有服務詳情 docker service rm #刪除某個服務(-f強制刪除) docker service scale #設置某個服務個數 docker service update #更新某個服務

  

#++++++++++++++++++++++++++++++

#Docker Stack 部署多個集群服務

#docker stack使用編排文件docker-compose.yml批量部署服務

#創建編排文件docker-compose.yml

mkdir mydocker ; cd mydocker echo "# docker stack version: '3' services:mynginx:image: hub.test.com:5000/almi/nginx:0.1ports:- "8081:80"deploy:replicas: 3busybox:image: hub.test.com:5000/busybox:latestvolumes:- "/var/run/docker.sock:/var/run/docker.sock"deploy:replicas: 2 #">docker-compose.yml

#使用docker-compose.yml批量創建服務

docker stack deploy -c docker-compose.yml deploy-test docker stack ps deploy-test #容器名稱 deploy-test_<service名稱>.隨機后綴

#docker stack 常用命令

docker stack deploy #部署新的堆棧或更新現有堆棧 docker stack ls #列出現有堆棧 docker stack ps #列出堆棧中的任務 docker stack rm #刪除堆棧 docker stack services #列出堆棧中的服務 docker stack down #移除某個堆棧(不刪數據) 掛載目錄, mount?

docker service create --mount type=bind,target=/container_data/,source=/host_data/

例 - 本地目錄: target = 容器里面的路徑, source = 本地硬盤路徑

# docker service create --name nginx --mount type=bind,target=/usr/share/nginx/html/,source=/opt/web/ --replicas 2 --publish 80:80/tcp nginx

docker service create --mount type=volume,source=<VOLUME-NAME>,target=<CONTAINER-PATH>,volume-driver=<DRIVER>,

例 - 掛載volume卷: source = volume 名稱 , traget = 容器里面的路徑

# docker service create --name nginx --mount type=volume,source=myvolume,target=/usr/share/nginx/html,volume-driver=local --replicas 2 --publish 80:80/tcp nginx

  

轉載于:https://www.cnblogs.com/lucoo/p/10147946.html

總結

以上是生活随笔為你收集整理的Docker swarm 笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。