diff --git a/CHANGELOG.md b/CHANGELOG.md
index 41fa55dc19186c86bf00a5aa8a5dafca6013d7c0..d3dd5f24497c46f238478190dfb80714c17c5444 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+# [2.4.0](https://gitlab.com/to-be-continuous/docker/compare/2.3.3...2.4.0) (2022-04-27)
+
+
+### Features
+
+* add image digest support ([57998b2](https://gitlab.com/to-be-continuous/docker/commit/57998b26c37086faee0b5524d31917f4f4a3ce53))
+
 ## [2.3.3](https://gitlab.com/to-be-continuous/docker/compare/2.3.2...2.3.3) (2022-04-12)
 
 
diff --git a/README.md b/README.md
index 0e6894882009dc9b0ad0291688b1fdb83b27e4b3..8bf4c809bc9e846e9df46c65095cbd6c505746e9 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@ In order to include this template in your project, add the following to your `.g
 ```yaml
 include:
   - project: 'to-be-continuous/docker'
-    ref: '2.3.3'
+    ref: '2.4.0'
     file: '/templates/gitlab-ci-docker.yml'
 ```
 
@@ -342,7 +342,7 @@ Here is a `.gitlab-ci.yaml` using an external Docker registry:
 ```yaml
 include:
   - project: 'to-be-continuous/docker'
-    ref: '2.3.3'
+    ref: '2.4.0'
     file: '/templates/gitlab-ci-docker.yml'
 
 variables:
@@ -360,7 +360,7 @@ Here is a `.gitlab-ci.yaml` that builds 2 Docker images from the same project (u
 ```yaml
 include:
   - project: 'to-be-continuous/docker'
-    ref: '2.3.3'
+    ref: '2.4.0'
     file: '/templates/gitlab-ci-docker.yml'
 
 variables:
@@ -416,11 +416,11 @@ With:
 include:
   # main template
   - project: 'to-be-continuous/docker'
-    ref: '2.3.3'
+    ref: '2.4.0'
     file: '/templates/gitlab-ci-docker.yml'
   # Vault variant
   - project: 'to-be-continuous/docker'
-    ref: '2.3.3'
+    ref: '2.4.0'
     file: '/templates/gitlab-ci-docker-vault.yml'
 
 variables:
diff --git a/templates/gitlab-ci-docker-vault.yml b/templates/gitlab-ci-docker-vault.yml
index 2981b4aadefd2a3c0a29527b5388914e9d0ec493..2ff23497eec2c2d794bfd01f31447cdb4bf4b812 100644
--- a/templates/gitlab-ci-docker-vault.yml
+++ b/templates/gitlab-ci-docker-vault.yml
@@ -9,6 +9,6 @@ variables:
 .docker-base:
   services:
     - name: "$CI_REGISTRY/to-be-continuous/tools/tracking:master"
-      command: ["--service", "docker", "2.3.3"]
+      command: ["--service", "docker", "2.4.0"]
     - name: "$CI_REGISTRY/to-be-continuous/tools/vault-secrets-provider:master"
       alias: "vault-secrets-provider"
diff --git a/templates/gitlab-ci-docker.yml b/templates/gitlab-ci-docker.yml
index 9ef5594aa2995cf17daceb5b6b35a1a4ad12f438..328bb1fc03e8e53758c71c995a4c3dadc3c81a9d 100644
--- a/templates/gitlab-ci-docker.yml
+++ b/templates/gitlab-ci-docker.yml
@@ -375,7 +375,7 @@ stages:
     fi
   }
 
-  if [[ "$TEMPLATE_CHECK_UPDATE_DISABLED" != "true" ]]; then check_for_update docker "2.3.3"; fi
+  if [[ "$TEMPLATE_CHECK_UPDATE_DISABLED" != "true" ]]; then check_for_update docker "2.4.0"; fi
   init_workspace
 
   # ENDSCRIPT
@@ -383,7 +383,7 @@ stages:
 .docker-base:
   services:
     - name: "$CI_REGISTRY/to-be-continuous/tools/tracking:master"
-      command: ["--service", "docker", "2.3.3"]
+      command: ["--service", "docker", "2.4.0"]
   before_script:
     - *docker-scripts
 
@@ -412,7 +412,7 @@ stages:
     _TRACE: "${TRACE}"
   services:
     - name: "$CI_REGISTRY/to-be-continuous/tools/tracking:master"
-      command: ["--service", "docker", "2.3.3"]
+      command: ["--service", "docker", "2.4.0"]
     - name: $DOCKER_DIND_IMAGE
       alias: docker
       command: