quarta-feira, 16 de novembro de 2016

DevOps - MSSQL Server no Docker (em Linux)

Primeiro artigo da série DevOps, continuação do livro Docker que pode ser acessado através do site Academia.edu.

Essa será a primeira de uma série de publicações para a montagem de ambientes utilizando o Docker com o Ubuntu 16.10. E, pode pensar que enlouqueci, mas não, vamos realmente instalar o Banco de dados Microsoft SQL Server no Linux e ainda por cima através do Docker.
O primeiro passo é baixar a imagem oficial:
$ sudo docker pull microsoft/mssql-server-linux
O segundo e último passo é executar a imagem para criar um contêiner com o seguinte comando:
$ docker run –e 'ACCEPT_EULA=Y' –e 'SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 -d microsoft/mssql-server-linux
Não estou brincando o banco já foi instalado e está respondendo na porta 1433. Podemos verificar que a imagem está realmente rodando com o comando:
$ docker ps -a
Podemos utilizar qualquer linguagem para testá-lo porém prefiro instalar um "Administrador" para isso, vamos então proceder mais alguns passos.

1. Entrar em modo super usuário:
$ sudo su
2. Importar do repositório público as chaves GPG:
# curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
3. Registrar o repositório Microsoft (não se preocupe com 16.04 para o Ubuntu 16.10):
# curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/msprod.list
4. Sair do modo super usuário:
# exit
5. Atualizar o sistema:
$ sudo apt update
6. Instalar o aplicativo e suas dependências:
$ sudo apt install odbcinst-utf16 odbcinst1debian2-utf16 unixodbc-utf16 msodbcsql mssql-tools

Testar o ambiente

Mais uma vez já poderiamos ter terminado mas aí não teria graça. Vamos testar o ambiente, digitar o seguinte comando para entrar no MSSQL-Tools:
$ sqlcmd -S localhost -U SA -P '<YourStrong!Passw0rd>'
Como resposta obtemos "1>", significa que estamos na linha de comando do MSSQL-Tools, cada comando SQL que digitarmos é necessário terminá-lo com ";" e digitar "GO" na linha de baixo, por exemplo, ver os bancos existentes com o comando:
SELECT name FROM sys.databases;
Pressionar "ENTER" e será mostrado "2>" digitar:
GO
Pressionar "ENTER". Provavelmente nada sera mostrado, pois é um banco limpo de tudo. Vamos criar uma base de dados e uma tabela, siga a sequencia, pressionando "ENTER" em cada linha:
CREATE DATABASE testedb;
GO
USE testedb;
GO
CREATE TABLE funcionario(matricula INT NOT NULL, nome NVARCHAR(50), salario NUMERIC(10,2), PRIMARY KEY(matricula));
GO
INSERT INTO funcionario VALUES (1, 'Fernando', 1200.00);
INSERT INTO funcionario VALUES (2, 'Maria', 1400.20);
INSERT INTO funcionario VALUES (3, 'Manoel', 1100.00);
INSERT INTO funcionario VALUES (4, 'Pedro', 1230.25);
GO
Podemos ver os dados através do comando:
SELECT * FROM funcionario;
GO
Sair do MSSQL-Tools com o seguinte comando:
quit
Digitar:
$ docker ps -a
Parar o servidor com o comando:
$ docker stop [CONTAINER ID]
Tentar acessar novamente o MSSQL-Tools e observar que dessa vez será mostrado um erro informando que não existe o banco ativo. Ativar o servidor novamente com o comando:
$ docker start [CONTAINER ID]
Acessar e verificar que a base testedb está integra e com os dados que foram inseridos corretamente.

Obrigado e até a próxima
Fernando Anselmo

0 comentários:

Postar um comentário