Conecte um container Docker ao Tailscale
Antes de começar
Conecte um container Docker à tailnet, preserve a identidade em um volume e confira autenticação, estado e reinício antes de integrar uma aplicação local.
- Docker instalado em um host administrado por você.
- Uma auth key válida sem a opção de dispositivo efêmero.
- Permissão para criar um volume persistente e registrar o dispositivo.
O container oficial executa o cliente Tailscale e registra uma identidade na tailnet. Comece conferindo esse registro e a persistência do estado. A aplicação que você pretende conectar terá uma configuração de rede própria, feita depois desta etapa.
Prepare a autenticação
Use um host com Docker disponível e gere uma auth key para o ambiente. Para este exemplo persistente, mantenha a opção de dispositivo efêmero desativada. Guarde a chave em um arquivo local chamado tailscale.env, fora do Git:
TS_AUTHKEY=SUBSTITUA_PELA_SUA_AUTH_KEYNo Linux, limite a leitura do arquivo:
chmod 600 tailscale.envO valor permanece acessível à administração do Docker. Não publique o arquivo, a saída de inspeção do container ou a chave em comentários e capturas.
Crie o container e preserve seu estado
O exemplo usa o modo userspace, sem interface TUN. A imagem latest acompanha atualizações. Em um ambiente mantido por você, registre e fixe a versão ou o digest depois da sua validação.
docker volume create tailscale-statedocker run -d \ --name tailscale-guia \ --env-file ./tailscale.env \ -e TS_HOSTNAME=docker-guia \ -e TS_STATE_DIR=/var/lib/tailscale \ -e TS_AUTH_ONCE=true \ -e TS_USERSPACE=true \ -v tailscale-state:/var/lib/tailscale \ --restart unless-stopped \ tailscale/tailscale:latestO volume mantém a identidade do dispositivo. A opção TS_AUTH_ONCE evita autenticar novamente uma identidade já válida a cada inicialização.
Confira o registro e o reinício
Abra Machines no painel administrativo e procure docker-guia. No host, consulte o estado:
docker exec tailscale-guia tailscale statusdocker exec tailscale-guia tailscale ip -4docker restart tailscale-guiadocker exec tailscale-guia tailscale statusAguarde a inicialização antes da última consulta. Confira que o registro original continua presente e que o endereço permaneceu associado a ele. Se aparecer uma nova máquina, revise o volume e o caminho do estado.
Investigue o container antes da aplicação
O host e o container são ambientes distintos. Executar tailscale status diretamente no host não consulta o cliente instalado dentro deste container. Use docker exec como nos exemplos anteriores.
Se a inicialização falhar, leia os registros recentes:
docker logs --tail 50 tailscale-guiadocker inspect --format '{{json .Mounts}}' tailscale-guiaO segundo comando restringe a inspeção aos volumes montados. Confira o destino /var/lib/tailscale e o volume esperado. Evite publicar uma inspeção completa: as variáveis de ambiente podem conter a auth key. Examine também os logs antes de compartilhá-los.
Um volume vazio, um caminho alterado ou uma autenticação ainda pendente explicam comportamentos diferentes. Corrija a causa identificada antes de recriar o container. O estado persistido contém material de autenticação do dispositivo. Mantenha seu backup com acesso restrito. Excluir esse estado muda as condições para retomar a identidade, mesmo que você reutilize o nome do container.
Conecte a aplicação em uma etapa separada
Este container registra o cliente. Ele não publica automaticamente as portas de outros containers. Para integrar uma aplicação, consulte o exemplo oficial de Docker Compose com compartilhamento do namespace de rede. O modo kernel também exige TUN e permissões adicionais.
Para parar este exercício, use docker stop tailscale-guia. Preserve o volume se pretende retomar a mesma identidade. Depois do primeiro registro, retire a chave da configuração ao recriar o container com o mesmo volume e estado autenticado.
Confira o resultado
O registro docker-guia mantém a identidade após reinício com o mesmo volume. A autenticação e a conexão são verificadas dentro do container.
Fontes e conferência
Procedimento revisado a partir da documentação oficial em 2 de novembro de 2026. Não executado em uma tailnet de laboratório nesta edição.
