diff --git a/lib/datasource/docker.js b/lib/datasource/docker.js
index 899cfb8716c207b5fcce305c566d6d9fc3daa266..b2be4d11b509c01dde63543c11b991fae108c554 100644
--- a/lib/datasource/docker.js
+++ b/lib/datasource/docker.js
@@ -1,8 +1,10 @@
 const dockerRegistryClient = require('docker-registry-client');
 const got = require('got');
+const URL = require('url');
 const parseLinkHeader = require('parse-link-header');
 const wwwAuthenticate = require('www-authenticate');
 const { isVersion, sortVersions } = require('../versioning/docker');
+const endpoints = require('../util/endpoints');
 
 module.exports = {
   getDigest,
@@ -38,10 +40,18 @@ async function getAuthHeaders(registry, repository) {
 
     // prettier-ignore
     const authUrl = `${authenticateHeader.parms.realm}?service=${authenticateHeader.parms.service}&scope=repository:${repository}:pull`;
+    const { host } = URL.parse(registry);
+    const opts = endpoints.find({ platform: 'docker', host }, { json: true });
+    if (opts.username && opts.password) {
+      const auth = Buffer.from(`${opts.username}:${opts.password}`).toString(
+        'base64'
+      );
+      opts.headers = { Authorization: `Basic ${auth}` };
+    }
     logger.debug(
       `Obtaining docker registry token for ${repository} using url ${authUrl}`
     );
-    const { token } = (await got(authUrl, { json: true })).body;
+    const { token } = (await got(authUrl, opts)).body;
     // istanbul ignore if
     if (!token) {
       logger.warn('Failed to obtain docker registry token');
diff --git a/test/datasource/docker.spec.js b/test/datasource/docker.spec.js
index b4da603993ac72e1d7b7887474dfeb6189272f4d..99768ff4bafd0cbb7e9fbfc46741c1cceeae14bf 100644
--- a/test/datasource/docker.spec.js
+++ b/test/datasource/docker.spec.js
@@ -1,12 +1,18 @@
 const got = require('got');
 const docker = require('../../lib/datasource/docker');
+const endpoints = require('../../lib/util/endpoints');
 
 jest.mock('got');
+jest.mock('../../lib/util/endpoints');
 
 describe('api/docker', () => {
   describe('getDigest', () => {
     beforeEach(() => {
       jest.resetAllMocks();
+      endpoints.find.mockReturnValue({
+        username: 'some-username',
+        password: 'some-password',
+      });
     });
     it('returns null if no token', async () => {
       got.mockReturnValueOnce({ body: {} });