def METHOD_NAME(self) -> None:
    """Launch the BIND9 server as a Docker container"""
    addr_str = "{}:{}".format(BIND_BIND_ADDRESS[0], BIND_BIND_ADDRESS[1])
    # pylint: disable=consider-using-with
    self.process = subprocess.Popen(
        [
            "docker",
            "run",
            "--rm",
            "-p",
            "{}:53/udp".format(addr_str),
            "-p",
            "{}:53/tcp".format(addr_str),
            "-v",
            "{}/conf:/etc/bind".format(self.bind_root),
            "-v",
            "{}/zones:/var/lib/bind".format(self.bind_root),
            BIND_DOCKER_IMAGE,
        ],
        stdout=self._output,
        stderr=self._output,
    )
    if self.process.poll():
        raise ValueError("BIND9 server stopped unexpectedly")
    try:
        self._wait_until_ready()
    except:
        # The container might be running even if we think it isn't
        self.stop()
        raise