code: def applianceSelf(forceDockerAppliance=False):
      
      import toil.version
      registry = lookupEnvVar(name='docker registry',
                              envName='TOIL_DOCKER_REGISTRY',
                              defaultValue=toil.version.dockerRegistry)
      name = lookupEnvVar(name='docker name',
                          envName='TOIL_DOCKER_NAME',
                          defaultValue=toil.version.dockerName)
      appliance = lookupEnvVar(name='docker appliance',
                               envName='TOIL_APPLIANCE_SELF',
                               defaultValue=registry + '/' + name + ':' + toil.version.dockerTag)
  
      checkDockerSchema(appliance)
  
      if forceDockerAppliance:
          return appliance
      else:
          return checkDockerImageExists(appliance=appliance)
docs: Returns the fully qualified name of the Docker image to start Toil appliance containers from.
      The result is determined by the current version of Toil and three environment variables:
      ``TOIL_DOCKER_REGISTRY``, ``TOIL_DOCKER_NAME`` and ``TOIL_APPLIANCE_SELF``.
  
      ``TOIL_DOCKER_REGISTRY`` specifies an account on a publicly hosted docker registry like Quay
      or Docker Hub. The default is UCSC's CGL account on Quay.io where the Toil team publishes the
      official appliance images. ``TOIL_DOCKER_NAME`` specifies the base name of the image. The
      default of `toil` will be adequate in most cases. ``TOIL_APPLIANCE_SELF`` fully qualifies the
      appliance image, complete with registry, image name and version tag, overriding both
      ``TOIL_DOCKER_NAME`` and `TOIL_DOCKER_REGISTRY`` as well as the version tag of the image.
      Setting TOIL_APPLIANCE_SELF will not be necessary in most cases.
  
      :rtype: str