diff --git a/lib/datasource/docker.js b/lib/datasource/docker.js
index 18d571b860183ad62c091995bfbc93f06333314c..4abd861784125f062942ad354660b687df9b1401 100644
--- a/lib/datasource/docker.js
+++ b/lib/datasource/docker.js
@@ -25,6 +25,11 @@ async function getHeaders(repository) {
       Accept: 'application/vnd.docker.distribution.manifest.v2+json',
     };
   } catch (err) {
+    // istanbul ignore if
+    if (err.statusCode >= 500 && err.statusCode < 600) {
+      logger.warn({ err }, 'docker registry failure: internal error');
+      throw new Error('registry-failure');
+    }
     logger.info('Error obtaining docker token');
     return null;
   }
@@ -41,6 +46,11 @@ async function getDigest(name, tag = 'latest') {
     logger.debug({ digest }, 'Got docker digest');
     return digest;
   } catch (err) {
+    // istanbul ignore if
+    if (err.statusCode >= 500 && err.statusCode < 600) {
+      logger.warn({ err }, 'docker registry failure: internal error');
+      throw new Error('registry-failure');
+    }
     logger.info({ err, name, tag }, 'Error looking up docker image digest');
     return null;
   }
@@ -55,6 +65,11 @@ async function getTags(name) {
     logger.debug({ tags }, 'Got docker tags');
     return tags;
   } catch (err) {
+    // istanbul ignore if
+    if (err.statusCode >= 500 && err.statusCode < 600) {
+      logger.warn({ err }, 'docker registry failure: internal error');
+      throw new Error('registry-failure');
+    }
     logger.warn({ err, name }, 'Error getting docker image tags');
     return null;
   }