--- # tasks file for docker - name: Uprage all packages. ansible.builtin.apt: name: '*' state: latest only_upgrade: true - name: Remove unofficial packages. ansible.builtin.apt: name: - docker.io - docker-compose - docker-doc - podman-docker - containerd - runc state: absent - name: Make sure required packages are installed. ansible.builtin.apt: name: - apt-transport-https - ca-certificates - curl state: present - name: Add docker apt signing key. ansible.builtin.get_url: url: https://download.docker.com/linux/debian/gpg dest: /etc/apt/trusted.gpg.d/docker.asc mode: '0644' - name: Add docker repository. ansible.builtin.apt_repository: repo: "{{ docker_apt_repository }}" state: present filename: docker update_cache: true - name: Install docker packages. ansible.builtin.apt: name: - docker-ce - docker-ce-cli - containerd.io - docker-buildx-plugin - docker-compose-plugin state: present notify: Restart docker - name: Ensure /etc/docker/ directory exists. ansible.builtin.file: path: /etc/docker state: directory mode: '0755' - name: Ensure /opt/docker directory exists. ansible.builtin.file: path: /opt/docker state: directory mode: '0755' - name: Configure Docker daemon options. ansible.builtin.copy: content: "{{ docker_daemon_options | to_nice_json }}" dest: /etc/docker/daemon.json mode: '0644' when: docker_daemon_options.keys() | length > 0 notify: Restart docker - name: Ensure Docker is started and enabled at boot. ansible.builtin.systemd_service: name: docker state: started enabled: true daemon_reload: true