Descrição
Tenho um servidor PostgreSQL através da internet em uma rede de laboratório. Atualmente estou usando ssh para se conectar a ele. No entanto, gostaria de ter uma janela de encaixe Adminer na minha rede local conectada ao servidor. É possível criar um redirecionamento de porta para que o docker possa se conectar a uma porta no meu computador local que me redirecione para o serviço PostgreSQL?
Acredito que este comando ssh possa funcionar, mas não tenho certeza, também gostaria de uma breve explicação de como funciona:
ssh -L 5000:myserverdomain:5432 postgresql@myserverdomain
O comando que você mostra tornará a porta 5432 de myserverdomain disponível na porta 5000 na máquina em que você está executando o comando.
Deve funcionar, mas (se eu estiver correto) como você está executando o comando em seu host e não em um contêiner Docker, por padrão o contêiner Adminer não poderá alcançar a porta 5000 na máquina host (Docker contêineres executados em uma rede de ponte não podem alcançar as portas da máquina host). Então você pode executar o comando ssh em um container ( eu fiz um que faz o encaminhamento de porta ssh), ou apenas executar o container Adminer com o "host" da rede.
Por fim, você pode querer usar o modificador -N no comando SSH para evitar a abertura de uma sessão interativa e apenas executar o encaminhamento de porta. E você pode até usar o autossh para se reconectar se a conexão cair.
Isso inicia uma conexão com myserverdomain e encaminha tudo em localhost (que é myserverdomain novamente) porta 5000 para a porta 5432 em myserverdomain (localhost).
Então, essencialmente, você está encaminhando o tráfego do localhost 5000 para o localhost 5432