2
respostas

[Dúvida] conexão com banco de dados externo e nao conteinerizado

Gostaria de ver um exemplo de conexão do container com um banco de dados externo ao container. Por exemplo um Banco de Dados SqlServer que está na máquina. (localhost). Grato!

2 respostas

Olá, Gabriel. Tudo bem?

Conectar um container Docker a um banco de dados externo, como um SQL Server rodando no localhost, é uma tarefa comum quando estamos trabalhando com microsserviços.

Quando você executa um container Docker, ele cria uma rede isolada. No entanto, para acessar serviços que estão rodando na sua máquina local (host), você pode usar o endereço especial host.docker.internal. Este endereço permite que o container se comunique com o host.

Veja esse exemplo de como você pode configurar sua string de conexão em um aplicativo .NET para se conectar a um SQL Server rodando no localhost:

var connectionString = "Server=host.docker.internal,1433;Database=SeuBancoDeDados;User Id=seuUsuario;Password=suaSenha;";

O SQL Server precisa estar configurado para aceitar conexões externas e que a porta 1433 está aberta no firewall. Além disso, verifique se o SQL Server está configurado para autenticação SQL Server e Windows, caso esteja usando um usuário SQL Server.

No caso utilizando o Docker Compose, pode especificar variáveis de ambiente para a string de conexão no seu arquivo docker-compose.yml:

services:
  seu_servico:
    environment:
      - ConnectionStrings__DefaultConnection=Server=host.docker.internal,1433;Database=SeuBancoDeDados;User Id=seuUsuario;Password=suaSenha;

Espero que este exemplo te ajude a configurar a conexão do seu container com o banco de dados SQL Server no localhost. Ou dar uma ideia.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Boa tarde Renan, muito obrigado pelo apoio. Entendi o conceito, fiz todos os procedimentos no SQLServer e no firewall e usei a conectionString de exemplo mas por algum motivo nao deu certo.

Mas entendi o conceito, deve ser alguma coisinha boba aqui. Só lembrando que minha duvida era em caso do Banco de Dados não estar em um container como BD legados que as empresas não querem conteinerizar, por isso queria ver como fazer essa conexão.