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:
C# - Tasks x Threads. Qual a diferença
VB .NET - Datas, horas: conceitos e operações
C# - Programação Assíncrona como : Asycn e Task
O tratamento de datas no VB.NET
C# - Obtendo a data e a hora por TimeZone
Docker - Uma introdução básica -
Docker - Criando um Contâiner para .NET Core ...
Docker - Trabalhando com contêineres
Motivos para usar Docker com .NET Core -
Docker - MiniCurso Básico