docker swarm init --advertise-addr 192.168.11.186docker swarm join --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk7434l103e8k2d6x 192.168.11.186:2377docker swarm join --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk7434l103e8k2d6x 192.168.11.186:2377docker node lsdocker swarm join-token managerdocker swarm join-token workerportainer-161:~# docker service update --force portainer_agent portainer_agent overall progress: 1 out of 1 tasks aeaia7g7xz3w: running [==================================================>] verify: Service portainer_agent converged
services:
shepherd:
image: containrrr/shepherd:latest
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
restart_policy:
condition: on-failure
delay: 10s
max_attempts: 3
environment:
- TZ=Asia/Taipei
- SLEEP_TIME=8h # 每8小時檢查一次,減少速率限制觸發(Go Duration 格式)
# - WITH_REGISTRY_AUTH=true # 啟用註冊庫驗證
# - REGISTRY_USER_FILE=/run/secrets/dockerhub_user
# - REGISTRY_PASSWORD_FILE=/run/secrets/dockerhub_token
- ROLLBACK_ON_FAILURE=true # 更新失敗時自動回滾
- UPDATE_OPTIONS=--update-delay=1m --update-parallelism=1 --update-failure-action=rollback # 添加延遲和並行限制,避免順序錯誤
- IGNORELIST_SERVICES=cleanup-scheduler_cleanup-scheduler
- NO_PROXY=localhost,127.0.0.1,/var/run/docker.sock
volumes:
- type: bind
source: /var/run/docker.sock
target: /var/run/docker.sock
docker node update --availability drain immich-237docker node lsdocker node rm immich-237docker swarm leavedocker node lsportainer-186:~# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION ramtv89mfx2vcrekm7lsoobt8 moon-tv-195 Ready Active 28.3.3 318i734m5zx0w6iqe1q2ddijm * portainer-186 Ready Active Leader 28.3.3 i9zyahgszt2awip7dl1tckyz8 sbom-182 Ready Active 28.3.3 lxftp7j4emal33f81vmywtxaz swarm-225 Ready Active 28.3.3 q4fxgqgi2sp42wntxynks3wqf swarm-226 Ready Active 28.3.3
docker node promote swarm-225 docker node promote swarm-226
docker node lsportainer-186:~# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION ramtv89mfx2vcrekm7lsoobt8 moon-tv-195 Ready Active 28.3.3 318i734m5zx0w6iqe1q2ddijm * portainer-186 Ready Active Leader 28.3.3 i9zyahgszt2awip7dl1tckyz8 sbom-182 Ready Active 28.3.3 lxftp7j4emal33f81vmywtxaz swarm-225 Ready Active Reachable 28.3.3 q4fxgqgi2sp42wntxynks3wqf swarm-226 Ready Active Reachable 28.3.3
volumes:
mystack_nfs-data:
driver: local
driver_opts:
type: nfs
o: "addr=192.168.1.159,rw,noatime,rsize=8192,wsize=8192,tcp,timeo=14,nfsvers=4"
device: ":/swarmdata/mystack/nfs-data"
mkdir -p /swarmdata/mystack/nfs-datadocker stack rm mystackdocker volume rm mystack_nfs-datadocker stack deploy -c mystack.yml mystackdocker volume inspect mystack_nfs-data