- name: Collect service facts community.general.systemd_info: unitname: - docker.service - docker.socket failed_when: docker_systemd_info.msg is defined and 'No units match any of the provided patterns' not in docker_systemd_info.msg # ^^^ On fresh installations, systemctl list-units (which is what systemd_info # does, it doesn't show the Docker units at all, don't exactly understand why. register: docker_systemd_info - name: Clean up docker data when: | docker_systemd_info.units is defined and (docker_systemd_info.units['docker.service'].substate == 'running' or docker_systemd_info.units['docker.socket'].substate == 'listening' or docker_systemd_info.units['docker.socket'].substate == 'running') become: true block: # Dependencies of the community.docker.docker_prune Ansible module: - name: Install module dependencies ansible.builtin.package: name: '{{ docker_prune_module_deps }}' state: present - name: Run docker system prune community.docker.docker_prune: builder_cache: true containers: true images: true images_filters: dangling: false networks: true volumes: true