Skip to content

Instantly share code, notes, and snippets.

@jadilson12
Last active February 8, 2025 02:29
Show Gist options
  • Select an option

  • Save jadilson12/5d45f07f9661b9e80b5025735572a56a to your computer and use it in GitHub Desktop.

Select an option

Save jadilson12/5d45f07f9661b9e80b5025735572a56a to your computer and use it in GitHub Desktop.
tunnel ssh.md

Tutorial: Acessando um Contêiner Docker via Túnel SSH

Este guia mostrará como identificar o IP de um contêiner Docker, verificar se ele está escutando em uma porta específica e criar um túnel SSH para acessá-lo diretamente de sua máquina local.


1. Identificar o IP do contêiner na rede Docker

No servidor, você precisa descobrir o IP do contêiner dentro da rede Docker específica.

Comando:

docker network inspect xpto

O que acontece?

  • Esse comando inspeciona a rede chamada xpto.
  • Na saída, procure a seção "Containers" e anote o IP atribuído ao contêiner desejado.

2. Verificar se o contêiner está escutando na porta

Depois de identificar o IP do contêiner, teste se ele está respondendo na rede Docker. Substitua [PORTA_DO_SERVIÇO] pela porta que o contêiner está escutando (exemplo: 80 ou 8080).

Comando:

curl 172.18.0.2:[PORTA_DO_SERVIÇO]

Exemplo:

curl 172.18.0.2:8080

O que acontece?

  • Se o serviço no contêiner estiver ativo e respondendo, o comando exibirá o conteúdo retornado pelo serviço.
  • Caso não haja resposta, verifique se a porta e o IP do contêiner estão corretos e se o serviço está em execução.

3. Criar o túnel SSH com o IP do contêiner

Com o IP do contêiner e a porta do serviço confirmados, crie um túnel SSH para acessar o contêiner diretamente da sua máquina local. Substitua os valores entre colchetes com suas informações específicas:

  • [PORTA_LOCAL]: Porta que você usará localmente para acessar o contêiner.
  • [PORTA_DO_SERVIÇO]: Porta onde o serviço está rodando no contêiner.
  • [USUARIO]: Nome de usuário para SSH no servidor.
  • [IP_SERVIDOR]: Endereço IP do servidor onde o Docker está executando.

Comando:

ssh -L [PORTA_LOCAL]:172.18.0.2:[PORTA_DO_SERVIÇO] [USUARIO]@[IP_SERVIDOR]

Exemplo:

Se o contêiner está na porta 8080 e você quer acessá-lo pela porta local 8080:

ssh -L 8080:172.18.0.2:8080 user@192.168.1.100

O que acontece?

  • Esse comando cria um túnel SSH que redireciona a porta local especificada para o IP do contêiner no servidor remoto.
  • Agora você pode acessar o serviço no contêiner em http://localhost:[PORTA_LOCAL] no seu navegador ou ferramentas locais.

Resumo

  1. Use docker network inspect para encontrar o IP do contêiner.
  2. Verifique se o contêiner está escutando na porta desejada com curl.
  3. Crie um túnel SSH para redirecionar o tráfego local para o contêiner usando ssh -L.

Este processo permite acesso seguro e fácil a um serviço em execução dentro de um contêiner Docker, mesmo que ele esteja em um servidor remoto.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment