--- # description: Reclaim disk on Docker / Swarm nodes by pruning unused images, containers, networks and build cache. # steward:category: maintenance # steward:confirm: true # Reclaim disk on Docker / Docker Swarm nodes by removing unused data. # Safe by default: prunes dangling images, stopped containers, unused networks # and build cache. Set extra-vars to widen scope: # prune_all_images=true also remove ALL unused images (not just dangling) # prune_volumes=true also remove unused named volumes (data loss risk) - name: Docker system prune hosts: all gather_facts: false become: true vars: prune_all_images: false prune_volumes: false tasks: - name: Run docker system prune ansible.builtin.command: argv: >- {{ ['docker', 'system', 'prune', '-f'] + (['-a'] if prune_all_images | bool else []) + (['--volumes'] if prune_volumes | bool else []) }} register: prune_result changed_when: "'Total reclaimed space: 0B' not in prune_result.stdout" - name: Report reclaimed space ansible.builtin.debug: msg: "{{ prune_result.stdout_lines | select | list }}"