diff --git a/README.md b/README.md
index 7965cd92a6fc8733eeae76c60f84c02bbfd77f94..88d62727bc8bc41c267776c191b45495375f5f20 100644
--- a/README.md
+++ b/README.md
@@ -31,6 +31,9 @@ Defaults to the hostname.
 The executor used by the runner.
 Defaults to `shell`.
 
+`gitlab_runner_docker_image`
+The default Docker image to use. Required when executor is `docker`.
+
 `gitlab_runner_tags`
 The tags assigned to the runner,
 Defaults to an empty list.
diff --git a/defaults/main.yml b/defaults/main.yml
index 93d086911f7133f66f57a87774387189aa431cf5..77a53739042a1ddfe45bf39e76f20cca50018f7f 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -10,5 +10,7 @@ gitlab_runner_registration_token: ''
 gitlab_runner_description: '{{ ansible_hostname }}'
 # Runner executor
 gitlab_runner_executor: 'shell'
+# Default Docker image
+gitlab_runner_docker_image: ''
 # Runner tags
 gitlab_runner_tags: []
diff --git a/tasks/register-runner.yml b/tasks/register-runner.yml
index 2a315a48d1f8cd402cde02f587d237325a6341d4..5b103b72461940182382c9cb2a3401af7350b96b 100644
--- a/tasks/register-runner.yml
+++ b/tasks/register-runner.yml
@@ -12,4 +12,5 @@
     --description '{{ gitlab_runner_description }}'
     --tag-list '{{ gitlab_runner_tags | join(",") }}'
     --executor '{{ gitlab_runner_executor }}'
+    --docker-image '{{ gitlab_runner_docker_image }}'
   when: configured_runners.stderr.find('\n{{ gitlab_runner_description }}') == -1