In `adapters/http.js`, it request use `https` or `http` module with `options`.

```javascript
var options = {
  hostname: parsed.hostname,
  port: parsed.port,
  path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\?/, ''),
  method: config.method,
  headers: headers,
  agent: agent,
  auth: auth
};
``` 
We can add a key to support unix domain socket

```javascript
var options = {
  hostname: parsed.hostname,
  port: parsed.port,
  path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\?/, ''),
  socketPath: config.socketPath,  // just for test
  method: config.method,
  headers: headers,
  agent: agent,
  auth: auth
};
```

using axios like

```javascript
axios({
  socketPath: '/var/run/docker.sock',
  url: '/images/json'
})
.then(resp => console.log(resp.data))
```

I don't know if it fits your design concept, so I mentioned this issue

lib/adapters/http.js
}
      transport = isHttps ? httpsFollow : httpFollow;
    }
    if (config.maxContentLength && config.maxContentLength > -1) {
      options.maxBodyLength = config.maxContentLength;
    }
    
    var req = transport.request(options, function handleResponse(res) {
      if (req.aborted) return;
      
      clearTimeout(timer);
      timer = null;
      
      var stream = res;
      switch (res.headers['content-encoding']) {
      
      case 'gzip':
      case 'compress':
      case 'deflate':
        
        stream = stream.pipe(zlib.createUnzip());
        
        delete res.headers['content-encoding'];
        break;
      }
      
      var lastRequest = res.req || req;
      var response = {
        status: res.statusCode,
        statusText: res.statusMessage,