diff --git a/README.md b/README.md
index 28c092bcf55a581d422e7ab40ac50d57d5205471..08867fc1800b29fa69a45784de7fcf4027d264ae 100644
--- a/README.md
+++ b/README.md
@@ -8,56 +8,6 @@ This role can also optionally install the last version of `docker-compose` versi
 
 See the [defaults/main.yml](defaults/main.yml) for the default settings and [vars/main.yml](vars/main.yml) for the `gpg` and `apt` variables.
 
-<table>
-  <thead>
-    <tr>
-      <th>Variable name</th>
-      <th>Default value</th>
-      <th>Comment</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr>
-      <td><code>docker</code></td>
-      <td><code>true</code></td>
-      <td>Set to <code>false</code> for the tasks in this role to be skipped</td>
-    </tr>
-    <tr>
-      <td><code>docker_compose_v1</code></td>
-      <td>UNDEFINED</td>
-      <td>Set to <code>false</code> for Docker Composer version 1 to be removed and set to <code>true</code> for <code>docker-compose</code> version 1 and <code>docker-compose-switch</code> to be installed</td>
-    </tr>
-    <tr>
-      <td><code>docker_compose_version_v1</code></td>
-      <td><code>1.29.2</code></td>
-      <td>The version number of <code>docker-compose</code> version 1 to be installed when <code>docker_compose_v1</code> is defined and <code>true</code></td>
-    </tr>
-    <tr>
-      <td><code>docker_daemon</code></td>
-      <td>
-<pre>
-  storage-driver: overlay2
-  log-driver: syslog
-</pre>
-      </td>
-      <td>Docker daemon configuration, YAML that will converted to JSON and written to <code>/etc/docker/daemon.json</code></td>
-    </tr>
-    <tr>
-      <td><code>docker_pkg</code></td>
-      <td>
-<pre>
-  - containerd.io
-  - docker-ce
-  - docker-ce-cli
-  - docker-ce-rootless-extras
-  - docker-compose-plugin
-</pre>
-      </td>
-      <td>Packages to be installed from the Docker apt repo</td>
-    </tr>
-  </tbody>
-</table>
-
 See the [documentation for the Docker daemon config file](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file) for all the options available and convert these to YAML for use by this role, for example:
 
 ```yml
diff --git a/tasks/apt.yml b/tasks/apt.yml
index 6749bea63947089f97bc03d6360b146167a5daa5..cb5b8a4488233e238980445c611598b585ffd817 100644
--- a/tasks/apt.yml
+++ b/tasks/apt.yml
@@ -86,36 +86,45 @@
             path: /etc/apt/keyrings/docker.gpg
           register: docker_gpg_file
 
-        - name: Docker gpg key check command
-          ansible.builtin.command: >
-            gpg --with-colons
-            {% if ansible_local.gpg.version is version('2.2.12', '<') %}
-            --with-fingerprint --with-subkey-fingerprint
-            {% else %}
-            --show-keys
-            {% endif %}
-            /etc/apt/keyrings/docker.gpg
+        - name: Check GPG keys
+          block:
+
+            - name: Docker gpg key check command
+              ansible.builtin.command: >
+                gpg --with-colons
+                {% if ansible_local.gpg.version is version('2.2.12', '<') %}
+                --with-fingerprint --with-subkey-fingerprint
+                {% else %}
+                --show-keys
+                {% endif %}
+                /etc/apt/keyrings/docker.gpg
+              check_mode: false
+              changed_when: false
+              register: docker_gpg
+
+            - name: Set a fact for the GPG fingerprints
+              ansible.builtin.set_fact:
+                docker_gpg_fingerprints_found: "{{ docker_gpg.stdout | string | community.general.jc('gpg') | community.general.json_query('[?type==`fpr`].user_id') | list }}"
+              when: docker_gpg is defined
+
+            - name: Docker gpg key check first fingerprint for GPG versions less that 2.2.12
+              ansible.builtin.assert:
+                that:
+                  - docker_gpg_fingerprints_found[0] == docker_gpg_fingerprints[0]
+              when:
+                - docker_gpg_fingerprints_found is defined
+                - ansible_local.gpg.version is version('2.2.12', '<')
+
+            - name: Docker gpg key check all fingerprints
+              ansible.builtin.assert:
+                that:
+                  - docker_gpg_fingerprints_found | difference(docker_gpg_fingerprints) | length == 0
+                  - docker_gpg_fingerprints | difference(docker_gpg_fingerprints_found) | length == 0
+              when:
+                - docker_gpg_fingerprints_found is defined
+                - ansible_local.gpg.version is version('2.2.12', '>=')
+
           when: docker_gpg_file.stat.exists | bool
-          check_mode: false
-          changed_when: false
-          register: docker_gpg
-
-        - name: Set a fact for the GPG fingerprints
-          ansible.builtin.set_fact:
-            docker_gpg_fingerprints_found: "{{ docker_gpg.stdout | community.general.jc('gpg') | community.general.json_query('[?type==`fpr`].user_id') | list }}"
-
-        - name: Docker gpg key check first fingerprint for GPG versions less that 2.2.12
-          ansible.builtin.assert:
-            that:
-              - docker_gpg_fingerprints_found[0] == docker_gpg_fingerprints[0]
-          when: ansible_local.gpg.version is version('2.2.12', '<')
-
-        - name: Docker gpg key check all fingerprints
-          ansible.builtin.assert:
-            that:
-              - docker_gpg_fingerprints_found | difference(docker_gpg_fingerprints) | length == 0
-              - docker_gpg_fingerprints | difference(docker_gpg_fingerprints_found) | length == 0
-          when: ansible_local.gpg.version is version('2.2.12', '>=')
 
       when: docker_asc_file.stat.exists | bool
 
diff --git a/tasks/install.yml b/tasks/install.yml
index bf5646dbcaba5a2eaea457139126274c40958474..b28c9e6b772f646e1ed63fe4f43c6ad5049a4e95 100644
--- a/tasks/install.yml
+++ b/tasks/install.yml
@@ -44,11 +44,17 @@
         state: absent
       notify: Restart docker
 
+    - name: Check that /etc/apt/sources.list.d/docker.sources is present
+      ansible.builtin.stat:
+        path: /etc/apt/sources.list.d/docker.sources
+      register: docker_apt_sources
+
     - name: Docker packages present
       ansible.builtin.apt:
         pkg: "{{ docker_pkg }}"
         state: present
         update_cache: true
+      when: docker_apt_sources.stat.exists | bool
       notify: Restart docker
 
     - name: Directory for Docker config present
@@ -76,6 +82,7 @@
         name: docker
         enabled: true
         state: started
+      when: docker_apt_sources.stat.exists | bool
 
   tags:
     - docker