--- ## 1. Swarm Initialization & Management {#swarm-init} ```bash # 1. Initialize a new swarm docker swarm init # 2. Initialize with specific advertise address docker swarm init --advertise-addr 192.168.1.100 # 3. Initialize with specific data path address docker swarm init --advertise-addr 192.168.1.100 --data-path-addr 10.0.0.100 # 4. Initialize with specific listen address docker swarm init --listen-addr 192.168.1.100:2377 # 5. Get current swarm info docker info | grep -A 10 Swarm # 6. Get swarm join token for workers docker swarm join-token worker # 7. Get swarm join token for managers docker swarm join-token manager # 8. Rotate join token for workers docker swarm join-token --rotate worker # 9. Rotate join token for managers docker swarm join-token --rotate manager # 10. Get both tokens in quiet mode docker swarm join-token -q worker docker swarm join-token -q manager # 11. Update swarm configuration docker swarm update --task-history-limit 10 # 12. Update certificate expiry docker swarm update --cert-expiry 720h # 13. Enable autolock docker swarm update --autolock=true # 14. Disable autolock docker swarm update --autolock=false # 15. Get unlock key docker swarm unlock-key # 16. Rotate unlock key docker swarm unlock-key --rotate # 17. Unlock a swarm docker swarm unlock # 18. Leave swarm (worker) docker swarm leave # 19. Force leave swarm (manager) docker swarm leave --force # 20. Initialize swarm with external CA docker swarm init --external-ca protocol=cfssl,url=https://ca.example.com ``` --- ## 2. Node Management {#node-mgmt} ```bash # 21. List all nodes docker node ls # 22. List nodes with custom format docker node ls --format "{{.ID}}: {{.Hostname}} - {{.Status}}" # 23. List only manager nodes docker node ls --filter "role=manager" # 24. List only worker nodes docker node ls --filter "role=worker" # 25. Inspect a node docker node inspect node-1 # 26. Inspect node in pretty format docker node inspect --pretty node-1 # 27. Get node's IP address docker node inspect --format '{{.Status.Addr}}' node-1 # 28. Get node's hostname docker node inspect --format '{{.Description.Hostname}}' node-1 # 29. Get node's resources docker node inspect --format '{{.Description.Resources}}' node-1 # 30. Promote worker to manager docker node promote worker-1 # 31. Promote multiple nodes docker node promote worker-1 worker-2 worker-3 # 32. Demote manager to worker docker node demote manager-2 # 33. Set node to drain (maintenance mode) docker node update --availability drain node-1 # 34. Set node to active docker node update --availability active node-1 # 35. Set node to pause docker node update --availability pause node-1 # 36. Add label to node docker node update --label-add type=database node-1 # 37. Add multiple labels docker node update --label-add environment=production --label-add zone=us-east node-1 # 38. Remove label from node docker node update --label-rm type node-1 # 39. Update node role directly docker node update --role manager node-1 # 40. Remove a node (must be down) docker node rm node-1 # 41. Force remove a node docker node rm --force node-1 # 42. Get tasks running on a node docker node ps node-1 # 43. Get only running tasks on a node docker node ps --filter "desired-state=running" node-1 # 44. Get failed tasks on a node docker node ps --filter "desired-state=shutdown" node-1 ``` --- ## 3. Service Creation {#service-create} ```bash # 45. Create simple service docker service create --name web nginx # 46. Create service with specific image tag docker service create --name web nginx:1.25-alpine # 47. Create service with replicas docker service create --name web --replicas 3 nginx # 48. Create service with published port docker service create --name web --publish 80:80 nginx # 49. Create service with custom publish mode docker service create --name web --publish published=8080,target=80,mode=host nginx # 50. Create service with multiple ports docker service create --name app --publish 80:80 --publish 443:443 nginx # 51. Create service with environment variables docker service create --name app --env NODE_ENV=production node:18 # 52. Create service with multiple env vars docker service create --name app \ --env NODE_ENV=production \ --env DB_HOST=postgres \ --env PORT=3000 \ node:18 # 53. Create service with env file docker service create --name app --env-file .env node:18 # 54. Create service with volume mount docker service create --name web \ --mount type=volume,source=web-data,target=/usr/share/nginx/html \ nginx # 55. Create service with bind mount docker service create --name web \ --mount type=bind,source=/host/data,target=/container/data \ nginx # 56. Create service with tmpfs mount docker service create --name cache \ --mount type=tmpfs,target=/cache,tmpfs-size=1G \ redis # 57. Create service with read-only volume docker service create --name web \ --mount type=volume,source=web-data,target=/data,readonly \ nginx # 58. Create service with network docker service create --name web --network my-network nginx # 59. Create service with multiple networks docker service create --name app \ --network frontend \ --network backend \ nginx # 60. Create global service (one per node) docker service create --name monitor --mode global node-exporter # 61. Create service with custom name docker service create --name my-web-app nginx # 62. Create service with hostname docker service create --name web --hostname my-web-server nginx # 63. Create service with custom DNS docker service create --name web --dns 8.8.8.8 nginx # 64. Create service with custom DNS search docker service create --name web --dns-search example.com nginx # 65. Create service with extra hosts docker service create --name web --host myhost:192.168.1.100 nginx # 66. Create service with working directory docker service create --name app --workdir /app node:18 # 67. Create service with user docker service create --name app --user node node:18 # 68. Create service with custom entrypoint docker service create --name app --entrypoint "npm start" node:18 # 69. Create service with command docker service create --name redis redis:alpine redis-server --appendonly yes # 70. Create service with labels docker service create --name web \ --label com.example.version=1.0 \ --label com.example.environment=prod \ nginx ``` --- ## 4. Service Configuration {#service-config} ```bash # 71. Create service with restart policy docker service create --name web \ --restart-condition on-failure \ --restart-delay 5s \ --restart-max-attempts 3 \ nginx # 72. Create service with update config docker service create --name web \ --update-parallelism 2 \ --update-delay 10s \ --update-failure-action rollback \ nginx # 73. Create service with rollback config docker service create --name web \ --rollback-parallelism 1 \ --rollback-delay 5s \ --rollback-monitor 30s \ nginx # 74. Create service with stop grace period docker service create --name app \ --stop-grace-period 30s \ node:18 # 75. Create service with stop signal docker service create --name app \ --stop-signal SIGTERM \ node:18 # 76. Create service with isolation mode (Windows) docker service create --name web --isolation hyperv nginx # 77. Create service with init process docker service create --name app --init node:18 # 78. Create service with read-only root filesystem docker service create --name app --read-only node:18 # 79. Create service with TTY docker service create --name app --tty node:18 # 80. Create service with sysctl options docker service create --name app --sysctl net.core.somaxconn=1024 nginx ``` --- ## 5. Service Management {#service-mgmt} ```bash # 81. List all services docker service ls # 82. List services with custom format docker service ls --format "{{.Name}}: {{.Replicas}}" # 83. List services with filter docker service ls --filter "name=web" # 84. List services by label docker service ls --filter "label=environment=production" # 85. Update service image docker service update --image nginx:1.25 web # 86. Update service with force (recreate containers) docker service update --force web # 87. Update service replicas docker service update --replicas 5 web # 88. Add environment variable docker service update --env-add NEW_VAR=value web # 89. Remove environment variable docker service update --env-rm OLD_VAR web # 90. Add published port docker service update --publish-add 8080:8080 web # 91. Remove published port docker service update --publish-rm 8080 web # 92. Add network docker service update --network-add backend web # 93. Remove network docker service update --network-rm backend web # 94. Add mount docker service update --mount-add type=volume,source=data,target=/data web # 95. Remove mount docker service update --mount-rm /data web # 96. Add constraint docker service update --constraint-add "node.role==worker" web # 97. Remove constraint docker service update --constraint-rm "node.role==worker" web # 98. Add label docker service update --label-add version=2.0 web # 99. Remove label docker service update --label-rm version web # 100. Add secret docker service update --secret-add my-secret web # 101. Remove secret docker service update --secret-rm my-secret web # 102. Add config docker service update --config-add my-config web # 103. Remove config docker service update --config-rm my-config web # 104. Update with detach mode docker service update --detach=false web # 105. Rollback service docker service rollback web # 106. Remove service docker service rm web # 107. Remove multiple services docker service rm web app worker # 108. Force remove service docker service rm --force web ``` --- ## 6. Service Inspection & Logs {#service-inspect} ```bash # 109. Inspect service docker service inspect web # 110. Inspect service in pretty format docker service inspect --pretty web # 111. Get service image docker service inspect --format '{{.Spec.TaskTemplate.ContainerSpec.Image}}' web # 112. Get service replicas docker service inspect --format '{{.Spec.Mode.Replicated.Replicas}}' web # 113. Get service networks docker service inspect --format '{{range .Spec.TaskTemplate.Networks}}{{.Target}} {{end}}' web # 114. View service logs docker service logs web # 115. Follow service logs docker service logs -f web # 116. View last N lines docker service logs --tail 100 web # 117. View logs since timestamp docker service logs --since 2024-01-01T00:00:00 web # 118. View logs with timestamps docker service logs --timestamps web # 119. View logs without task IDs docker service logs --no-task-ids web # 120. View raw logs (no formatting) docker service logs --raw web # 121. View logs with details docker service logs --details web # 122. List service tasks docker service ps web # 123. List all tasks (including stopped) docker service ps --no-trunc web # 124. List only running tasks docker service ps --filter "desired-state=running" web # 125. List failed tasks docker service ps --filter "desired-state=shutdown" web # 126. List tasks on specific node docker service ps --filter "node=node-1" web # 127. List tasks with custom format docker service ps --format "{{.Name}} {{.Node}} {{.CurrentState}}" web ``` --- ## 7. Scaling & Replicas {#scaling} ```bash # 128. Scale service to 5 replicas docker service scale web=5 # 129. Scale multiple services docker service scale web=5 app=3 worker=10 # 130. Scale with detach docker service scale --detach web=5 # 131. Scale to zero (stop all replicas) docker service scale web=0 # 132. Get current replica count docker service ls --filter name=web --format "{{.Replicas}}" # 133. Scale up by one CURRENT=$(docker service inspect --format '{{.Spec.Mode.Replicated.Replicas}}' web) docker service scale web=$((CURRENT + 1)) # 134. Scale down by one CURRENT=$(docker service inspect --format '{{.Spec.Mode.Replicated.Replicas}}' web) docker service scale web=$((CURRENT - 1)) # 135. Auto-scale based on condition (script) # if load > 80%; then docker service scale web=10; fi ``` --- ## 8. Updates & Rollbacks {#updates} ```bash # 136. Update image version docker service update --image nginx:1.25 web # 137. Update with parallelism docker service update --image nginx:1.25 --update-parallelism 2 web # 138. Update with delay docker service update --image nginx:1.25 --update-delay 10s web # 139. Update with failure action docker service update --image nginx:1.25 --update-failure-action rollback web # 140. Update with max failure ratio docker service update --image nginx:1.25 --update-max-failure-ratio 0.2 web # 141. Update with monitor period docker service update --image nginx:1.25 --update-monitor 30s web # 142. Update order (stop-first or start-first) docker service update --image nginx:1.25 --update-order start-first web # 143. Rollback to previous version docker service rollback web # 144. Rollback with custom settings docker service rollback --rollback-parallelism 1 --rollback-delay 5s web # 145. Force update (recreate all tasks) docker service update --force web # 146. Update with rollback on failure docker service update \ --image nginx:broken \ --update-failure-action rollback \ --update-max-failure-ratio 0.3 \ web # 147. Update multiple parameters docker service update \ --image nginx:1.25 \ --replicas 5 \ --env-add NEW_VAR=value \ --update-parallelism 2 \ web ``` --- ## 9. Network Commands {#network} ```bash # 148. Create overlay network docker network create --driver overlay my-network # 149. Create attachable overlay docker network create --driver overlay --attachable my-network # 150. Create encrypted overlay docker network create --driver overlay --opt encrypted my-network # 151. Create with custom subnet docker network create \ --driver overlay \ --subnet 10.0.9.0/24 \ --gateway 10.0.9.1 \ my-network # 152. Create with IP range docker network create \ --driver overlay \ --subnet 10.0.9.0/24 \ --ip-range 10.0.9.128/25 \ my-network # 153. Create with labels docker network create \ --driver overlay \ --label environment=production \ my-network # 154. List networks docker network ls # 155. List overlay networks only docker network ls --filter driver=overlay # 156. Inspect network docker network inspect my-network # 157. Get network subnet docker network inspect --format '{{range .IPAM.Config}}{{.Subnet}}{{end}}' my-network # 158. Remove network docker network rm my-network # 159. Remove multiple networks docker network rm network1 network2 network3 # 160. Prune unused networks docker network prune # 161. Force prune networks docker network prune --force # 162. Connect service to network docker service update --network-add my-network web # 163. Disconnect service from network docker service update --network-rm my-network web ``` --- ## 10. Volume & Storage {#volume} ```bash # 164. Create volume docker volume create my-volume # 165. Create volume with driver docker volume create --driver local my-volume # 166. Create volume with options docker volume create \ --driver local \ --opt type=nfs \ --opt o=addr=192.168.1.200,rw \ --opt device=:/path/to/dir \ nfs-volume # 167. Create volume with labels docker volume create --label environment=production my-volume # 168. List volumes docker volume ls # 169. List volumes with filter docker volume ls --filter driver=local # 170. Inspect volume docker volume inspect my-volume # 171. Get volume mountpoint docker volume inspect --format '{{.Mountpoint}}' my-volume # 172. Remove volume docker volume rm my-volume # 173. Remove multiple volumes docker volume rm vol1 vol2 vol3 # 174. Prune unused volumes docker volume prune # 175. Force prune volumes docker volume prune --force # 176. Service with named volume docker service create --name web \ --mount type=volume,source=web-data,target=/data \ nginx # 177. Service with anonymous volume docker service create --name web \ --mount type=volume,target=/data \ nginx # 178. Service with bind mount docker service create --name web \ --mount type=bind,source=/host/path,target=/container/path \ nginx # 179. Service with tmpfs docker service create --name app \ --mount type=tmpfs,target=/tmp,tmpfs-size=1G \ nginx # 180. Service with NFS volume docker service create --name web \ --mount type=volume,source=nfs-volume,target=/data \ nginx ``` --- ## 11. Secrets Management {#secrets} ```bash # 181. Create secret from file docker secret create db_password password.txt # 182. Create secret from stdin echo "my-secret-password" | docker secret create db_password - # 183. Create secret with label docker secret create --label environment=prod db_password password.txt # 184. List secrets docker secret ls # 185. List secrets with filter docker secret ls --filter label=environment=prod # 186. Inspect secret docker secret inspect db_password # 187. Inspect secret in pretty format docker secret inspect --pretty db_password # 188. Remove secret docker secret rm db_password # 189. Remove multiple secrets docker secret rm secret1 secret2 secret3 # 190. Service with secret docker service create --name app \ --secret db_password \ myapp:latest # 191. Service with custom secret target docker service create --name app \ --secret source=db_password,target=/app/password.txt \ myapp:latest # 192. Service with secret permissions docker service create --name app \ --secret source=db_password,target=/app/password.txt,mode=0400 \ myapp:latest # 193. Add secret to existing service docker service update --secret-add db_password app # 194. Remove secret from service docker service update --secret-rm db_password app # 195. Rotate secret echo "new-password" | docker secret create db_password_v2 - docker service update \ --secret-rm db_password \ --secret-add db_password_v2 \ app # 196. Get secret creation date docker secret inspect --format '{{.CreatedAt}}' db_password # 197. Get secret updated date docker secret inspect --format '{{.UpdatedAt}}' db_password ``` --- ## 12. Configs Management {#configs} ```bash # 198. Create config from file docker config create nginx.conf nginx.conf # 199. Create config from stdin cat config.json | docker config create app_config - # 200. Create config with label docker config create --label version=1.0 app_config config.json # 201. List configs docker config ls # 202. List configs with filter docker config ls --filter label=version=1.0 # 203. Inspect config docker config inspect app_config # 204. Inspect config in pretty format docker config inspect --pretty app_config # 205. Get config data docker config inspect --format '{{.Spec.Data}}' app_config | base64 -d # 206. Remove config docker config rm app_config # 207. Remove multiple configs docker config rm config1 config2 config3 # 208. Service with config docker service create --name web \ --config source=nginx.conf,target=/etc/nginx/nginx.conf \ nginx # 209. Service with config permissions docker service create --name web \ --config source=nginx.conf,target=/etc/nginx/nginx.conf,mode=0444 \ nginx # 210. Add config to existing service docker service update --config-add nginx.conf web # 211. Remove config from service docker service update --config-rm nginx.conf web # 212. Update config (create new version) docker config create nginx_v2.conf nginx.conf docker service update \ --config-rm nginx.conf \ --config-add source=nginx_v2.conf,target=/etc/nginx/nginx.conf \ web ``` --- ## 13. Stack Deployment {#stack} ```bash # 213. Deploy stack docker stack deploy -c docker-compose.yml myapp # 214. Deploy with multiple compose files docker stack deploy -c docker-compose.yml -c docker-compose.prod.yml myapp # 215. Deploy with environment file docker stack deploy -c docker-compose.yml --env-file .env myapp # 216. Deploy with prune (remove services not in compose) docker stack deploy -c docker-compose.yml --prune myapp # 217. Deploy with resolve image docker stack deploy -c docker-compose.yml --resolve-image always myapp # 218. Deploy in detached mode docker stack deploy -c docker-compose.yml --detach=false myapp # 219. List stacks docker stack ls # 220. List stack services docker stack services myapp # 221. List stack services with filter docker stack services --filter name=web myapp # 222. List stack tasks docker stack ps myapp # 223. List only running tasks docker stack ps --filter "desired-state=running" myapp # 224. List failed tasks docker stack ps --filter "desired-state=shutdown" myapp # 225. Remove stack docker stack rm myapp # 226. Remove multiple stacks docker stack rm app1 app2 app3 # 227. Get stack configuration docker stack config -c docker-compose.yml # 228. Validate compose file docker stack config -c docker-compose.yml > /dev/null # 229. Deploy with custom stack name docker stack deploy -c docker-compose.yml my-custom-stack ``` --- ## 14. Placement & Constraints {#placement} ```bash # 230. Service with node constraint docker service create --name web \ --constraint 'node.role==worker' \ nginx # 231. Service with multiple constraints docker service create --name db \ --constraint 'node.role==worker' \ --constraint 'node.labels.type==database' \ postgres # 232. Service with placement preference docker service create --name web \ --placement-pref 'spread=node.labels.datacenter' \ nginx # 233. Service with multiple placement prefs docker service create --name web \ --placement-pref 'spread=node.labels.datacenter' \ --placement-pref 'spread=node.labels.rack' \ nginx # 234. Service with max replicas per node docker service create --name web \ --replicas 10 \ --replicas-max-per-node 2 \ nginx # 235. Add constraint to existing service docker service update --constraint-add 'node.labels.type==app' web # 236. Remove constraint docker service update --constraint-rm 'node.labels.type==app' web # 237. Add placement preference docker service update --placement-pref-add 'spread=node.labels.zone' web # 238. Remove placement preference docker service update --placement-pref-rm 'spread=node.labels.zone' web # 239. Service constrained to specific hostname docker service create --name web \ --constraint 'node.hostname==node-1' \ nginx # 240. Service constrained by node ID docker service create --name web \ --constraint 'node.id==abc123' \ nginx # 241. Service avoiding specific node docker service create --name web \ --constraint 'node.hostname!=node-2' \ nginx ``` --- ## 15. Resource Management {#resources} ```bash # 242. Service with CPU limit docker service create --name app \ --limit-cpu 0.5 \ node:18 # 243. Service with memory limit docker service create --name app \ --limit-memory 512M \ node:18 # 244. Service with CPU reservation docker service create --name app \ --reserve-cpu 0.25 \ node:18 # 245. Service with memory reservation docker service create --name app \ --reserve-memory 256M \ node:18 # 246. Service with both limits and reservations docker service create --name app \ --limit-cpu 1.0 \ --limit-memory 1024M \ --reserve-cpu 0.5 \ --reserve-memory 512M \ node:18 # 247. Update CPU limit docker service update --limit-cpu 1.0 app # 248. Update memory limit docker service update --limit-memory 1024M app # 249. Update CPU reservation docker service update --reserve-cpu 0.5 app # 250. Update memory reservation docker service update --reserve-memory 512M app # 251. Service with pids limit docker service create --name app \ --limit-pids 100 \ node:18 # 252. Get service resource limits docker service inspect --format '{{.Spec.TaskTemplate.Resources}}' app ``` --- ## 16. Health Checks {#health} ```bash # 253. Service with health check docker service create --name web \ --health-cmd "curl -f http://localhost/ || exit 1" \ --health-interval 30s \ --health-timeout 10s \ --health-retries 3 \ nginx # 254. Service with health check start period docker service create --name web \ --health-cmd "curl -f http://localhost/ || exit 1" \ --health-interval 30s \ --health-timeout 10s \ --health-retries 3 \ --health-start-period 60s \ nginx # 255. Disable health check docker service create --name web \ --no-healthcheck \ nginx # 256. Update health check docker service update \ --health-cmd "wget -q --spider http://localhost/ || exit 1" \ web # 257. Update health interval docker service update --health-interval 60s web # 258. Update health timeout docker service update --health-timeout 5s web # 259. Update health retries docker service update --health-retries 5 web # 260. View task health status docker service ps --format "{{.Name}} {{.CurrentState}}" web ``` --- ## 17. Monitoring & Debugging {#monitoring} ```bash # 261. View real-time service stats docker stats $(docker service ps -q web) # 262. Get service creation time docker service inspect --format '{{.CreatedAt}}' web # 263. Get service update time docker service inspect --format '{{.UpdatedAt}}' web # 264. Get service version docker service inspect --format '{{.Version.Index}}' web # 265. Watch service status watch docker service ps web # 266. View service events docker events --filter type=service --filter service=web # 267. View node events docker events --filter type=node # 268. View network events docker events --filter type=network # 269. Get task logs by ID docker logs <task-container-id> # 270. Find container ID for task docker service ps -q --no-trunc web | head -1 # 271. Execute command in service task # First get container ID from service ps, then: docker exec -it <container-id> /bin/sh # 272. View swarm CA certificate docker swarm ca # 273. Update CA certificate docker swarm ca --rotate # 274. View node's engine labels docker node inspect --format '{{.Spec.Labels}}' node-1 # 275. View node's description docker node inspect --format '{{.Description}}' node-1 # 276. Check service convergence docker service inspect --format '{{.Spec.Mode.Replicated.Replicas}}' web docker service ps --filter desired-state=running web | wc -l # 277. List all tasks across all services docker node ps $(docker node ls -q) # 278. Find services using a network docker service ls --filter network=my-network # 279. Find services using a volume docker service ls --filter volume=my-volume # 280. Get detailed task error docker service ps --no-trunc web ``` --- ## 18. Advanced Operations {#advanced} ```bash # 281. Deploy visualizer for monitoring docker service create \ --name viz \ --publish 8080:8080 \ --constraint 'node.role==manager' \ --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \ dockersamples/visualizer # 282. Deploy Portainer for management docker service create \ --name portainer \ --publish 9000:9000 \ --constraint 'node.role==manager' \ --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \ portainer/portainer-ce # 283. Backup swarm state tar -czf swarm-backup.tar.gz /var/lib/docker/swarm # 284. Create service with generic resource docker service create --name app \ --generic-resource "NVIDIA-GPU=2" \ tensorflow/tensorflow:latest-gpu # 285. Service with custom DNS server docker service create --name web \ --dns 8.8.8.8 \ --dns 1.1.1.1 \ nginx # 286. Service with DNS options docker service create --name web \ --dns-option ndots:5 \ nginx # 287. Service with DNS search domain docker service create --name web \ --dns-search example.com \ nginx # 288. Service with cap-add docker service create --name app \ --cap-add NET_ADMIN \ myapp # 289. Service with cap-drop docker service create --name app \ --cap-drop ALL \ --cap-add NET_BIND_SERVICE \ nginx # 290. Service with ulimit docker service create --name app \ --ulimit nofile=65535:65535 \ myapp # 291. Get service endpoint mode docker service inspect --format '{{.Spec.EndpointSpec.Mode}}' web # 292. Create service with vip endpoint mode docker service create --name web \ --endpoint-mode vip \ nginx # 293. Create service with dnsrr endpoint mode docker service create --name web \ --endpoint-mode dnsrr \ nginx # 294. Service with custom container name docker service create --name web \ --container-label com.example.container=web \ nginx # 295. List services by mode docker service ls --filter mode=replicated docker service ls --filter mode=global # 296. Export service configuration docker service inspect web > web-service.json # 297. View service's published ports docker service inspect --format '{{range .Endpoint.Ports}}{{.PublishedPort}}:{{.TargetPort}}/{{.Protocol}} {{end}}' web # 298. Get service task history limit docker service inspect --format '{{.Spec.TaskTemplate.ForceUpdate}}' web # 299. Set task history limit docker swarm update --task-history-limit 5 # 300. Service with log driver docker service create --name web \ --log-driver json-file \ --log-opt max-size=10m \ --log-opt max-file=3 \ nginx # 301. Service with syslog driver docker service create --name web \ --log-driver syslog \ --log-opt syslog-address=tcp://192.168.1.100:514 \ nginx # 302. Get all service names docker service ls --format '{{.Name}}' # 303. Count running services docker service ls --quiet | wc -l # 304. Get total replicas across all services docker service ls --format '{{.Replicas}}' | awk -F'/' '{sum+=$2} END {print sum}' # 305. Find services with 0 replicas docker service ls --format '{{.Name}}: {{.Replicas}}' | grep '0/' # 306. Backup all secrets docker secret ls -q | xargs -I {} sh -c 'docker secret inspect {} > {}.json' # 307. Backup all configs docker config ls -q | xargs -I {} sh -c 'docker config inspect {} > {}.json' # 308. Remove all services docker service rm $(docker service ls -q) # 309. Remove all stopped tasks docker service ps --filter desired-state=shutdown -q | xargs docker rm # 310. Create test service for debugging docker service create --name test \ --replicas 1 \ --entrypoint "sleep 3600" \ alpine # 311. Force service rebalance docker service update --force --detach=false web # 312. Create service with multiple replicas and specific names docker service create --name web-{1..3} nginx # 313. Parallel service scaling docker service scale web=10 app=10 db=3 cache=2 # 314. Service with privileged mode docker service create --name app \ --mode global \ --mount type=bind,source=/,target=/host \ --privileged \ monitoring-agent # 315. Get swarm manager address docker node inspect self --format '{{.ManagerStatus.Addr}}' # 316. Check if node is manager docker node inspect self --format '{{.ManagerStatus.Reachability}}' # 317. Get swarm cluster ID docker info --format '{{.Swarm.Cluster.ID}}' # 318. Get node's TLS info docker node inspect self --format '{{.Description.TLSInfo}}' # 319. List manager nodes with address docker node ls --filter role=manager --format '{{.Hostname}}: {{.ManagerStatus.Addr}}' # 320. Create service that runs on manager only docker service create --name mgr-task \ --constraint 'node.role==manager' \ --replicas 1 \ alpine sleep 3600 ```