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
'use strict';
var utils = require('./../utils');
var settle = require('./../core/settle');
var buildURL = require('./../helpers/buildURL');
var http = require('http');
var https = require('https');
var httpFollow = require('follow-redirects').http;
var httpsFollow = require('follow-redirects').https;
var url = require('url');
var zlib = require('zlib');
var pkg = require('./../../package.json');
var createError = require('../core/createError');
var enhanceError = require('../core/enhanceError');
module.exports = function httpAdapter(config) {
  return new Promise(function dispatchHttpRequest(resolve, reject) {
    var data = config.data;
    var headers = config.headers;
    var timer;