Com relação ao DNS Failover, você deve entender que os servidores DNS normais não possuem um método para isso. Eles não monitoram um servidor, mas podem simplesmente fornecer vários IPs em resposta a um pedido (chamado DNS Round-Robin). O cliente escolhe um aleatoriamente e, se esse host estiver inativo, pode ou não tentar novamente o outro. É mais um método de balanceamento de carga idiota. Alguns provedores de DNS (como o Amazon Route53) fornecem monitoramento ativo, o que funcionaria como você descreve. Consulte o link
Mas, se eu entendi corretamente, você forneceu um endereço IP ao seu professor, não um nome de host. Sem um nome de host, o método DNS não funcionará, pois o DNS nunca é consultado. Um endereço IP limita severamente suas opções.
Tenho uma experiência muito limitada com IPs virtuais, mas acho que você está certo de que o DO não os suporta.
Como o script é verificado a cada hora, provavelmente seria suficiente garantir que seus contêineres iniciassem automaticamente na reinicialização por meio das políticas de reinicialização do Docker (como Michael Hampton sugeriu). De sua pergunta, suponho que as reinicializações raramente ocorram, e é improvável que os tempos de inatividade de 1 a 2 minutos se sobreponham à janela de monitoramento do script.