ASP .NET Core - Web API com SQL Server em um Contêiner Docker - III


Hoje vamos continuar mostrando como criar uma API ASP.Net Core acessando o SQL Server e executar a aplicação em um contêiner Docker.

Continuando a segunda parte do artigo vamos agora acessar o contêiner do SQL Server e emitir alguns comandos para exibir o banco de dados, a tabela e os dados.

Acessando o contêiner do SQL Server

Para poder acessar um contêiner em execução podemos usar o comando : docker exec -it <container> /bin/sh

Mas como estamos usando o Docker Desktop no Windows a forma mais simples é acessar o Dashboard e no link Containers/Apps localizar o contêiner que deve estar em execução e clicar no ícone - CLI - que vai abrir uma janela de prompt de comandos diretamente no contêiner:

Ao clicar teremos:

Note que na barra de título temos o comando usado para abrir este terminal.

Acessando o SQL Server

Para emitir comandos no contêiner do SQL Server vamos usar o utilitário sqlcmd que é uma ferramenta de linha de comando que permite enviar instruções T-SQL ou lotes para instâncias locais e remotas do SQL Server.

Após entrar no contêiner vamos nos conectar localmente com a sqlcmd.  A sqlcmd não está no caminho por padrão, portanto, você precisará especificar o caminho completo.

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Numsey#2021"

Se isso funcionar, você será levado a um prompt de comando sqlcmd: 1>.

Vamos definir um comando para exibir o nome de todos os banco de dados existentes definindo os comandos:

1>SELECT Name from sys.Databases
2> GO

Ao pressionar ENTER teremos o seguinte resultado:

Obtemos a lista de banco de dados incluindo o nosso banco ProductsDb.

Vamos agora usar este banco de dados e listar os dados da tabela Products definindo os comandos:

1>Use ProductsDb
2>SELECT * from Products
3>GO

Teclando Enter teremos:

Vamos agora incluir um novo produto diretamente no contêiner definindo as instruções:

1>INSERT INTO Products VALUES ('Lápis',4.25,'Lápis Preto');
2>GO

E a seguir vamos exibir os dados repetindo o comando anterior:

1>SELECT * from Products
2>GO

Para sair do sqlcmd digite :  exit

Para sair do contêiner digite: exit novamente.

Após isso vamos retornar ao navegador e acionar novamente a url :  http://localhost:32033/api/products onde iremos agora obter o seguinte resultado:

Agora temos o novo produto que incluímos diretamente no contêiner via prompt de comando.

Então como você percebeu é bem simples criar, acessar e gerenciar contêineres no ambiente do Docker Desktop for Windows usando a integração com o Visual Studio.

Pegue o projeto aqui : EFCoreDocker.zip (sem as referências)

Referências:


José Carlos Macoratti