code: def create_volume(self, name=None, driver=None, driver_opts=None,
                        labels=None):
          
          url = self._url('/volumes/create')
          if driver_opts is not None and not isinstance(driver_opts, dict):
              raise TypeError('driver_opts must be a dictionary')
  
          data = {
              'Name': name,
              'Driver': driver,
              'DriverOpts': driver_opts,
          }
  
          if labels is not None:
              if utils.compare_version('1.23', self._version) < 0:
                  raise errors.InvalidVersion(
                      'volume labels were introduced in API 1.23'
                  )
              if not isinstance(labels, dict):
                  raise TypeError('labels must be a dictionary')
              data["Labels"] = labels
  
          return self._result(self._post_json(url, data=data), True)
docs: Create and register a named volume
  
          Args:
              name (str): Name of the volume
              driver (str): Name of the driver used to create the volume
              driver_opts (dict): Driver options as a key-value dictionary
              labels (dict): Labels to set on the volume
  
          Returns:
              (dict): The created volume reference object
  
          Raises:
              :py:class:`docker.errors.APIError`
                  If the server returns an error.
  
          Example:
  
              >>> volume = cli.create_volume(name='foobar', driver='local',
                      driver_opts={'foo': 'bar', 'baz': 'false'},
                      labels={"key": "value"})
              >>> print(volume)
              {u'Driver': u'local',
               u'Labels': {u'key': u'value'},
               u'Mountpoint': u'/var/lib/docker/volumes/foobar/_data',
               u'Name': u'foobar',
               u'Scope': u'local'}