Using docker

O docker é um plataforma de containers recomendada para executar aplicações como mongodb, rabbitmq utilizado na demonstração do DevPrime (Windows, Linux, macOS).

A utilização de containers no Docker facilita o dia a dia da pessoa desenvolvedora de software, pois torna-se muito fácil subir serviços como banco de dados, serviços de menssageria, serviços de cache e outras ferramentas importantes que utilizamos no a dia e podem ser instaladas com simplicidade e posteriormente removidas após o uso.

Nas demonstrações iniciais nós utilizamos o MongoDB e RabbitMQ e por isso você deve subir esses dois serviços no Docker. Se você já tiver um dos serviços executando basta alterar as credenciais no arquivo de configuuração.
code /src/App/app/appsettings.json

Efetuando login no Docker.
docker login -u <user> -p <password>

Criando uma rede virtual no Docker
Em nossas demonstrações utilizaremos uma rede virtual ‘devprime’ unificando a comunicação entre todos os containers utilizados. Utilize o comando create.

  • Criando uma rede virtual devprime
    docker network create devprime
  • Listando redes existente
    docker network list
  • Excluindo uma rede virtual
    docker network rm devprime

Iniciando containers no Docker
Um exemplo básico envolve pelo menos um container do mongodb e um container do RabbitMQ. Copie a linha abaixo e execute para iniciar o container no Docker.

Item Ferramenta Comando
1 MongoDB docker run --network devprime --name mongodb -p 27018:27018 -p 27019:27019 -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=mongoadmin -e MONGO_INITDB_ROOT_PASSWORD=LltF8Nx*yo -d mongo
2 RabbitMQ docker run --network devprime --name rabbitmq -d -p 5672:5672 -p 15672:15672 -t rabbitmq:3-management
3 MySQL docker run -d --network devprime --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=LltF8Nx*yo mysql:8.0
4 SQLServer docker run -d --network devprime --name sqlserver -e “MSSQL_SA_PASSWORD=LltF8Nx*yo”-e “ACCEPT_EULA=Y” -p 1433:1433 mcr.microsoft.com/mssql/server
5 PostgreSQL docker run -d --network devprime --name postgresql -p 5432:5432 -e POSTGRES_PASSWORD=LltF8Nx*yo postgres:alpine3.14
6 Redis docker run --network devprime --name redis -p 6379:6379 -e REDIS_PASSWORD=LltF8Nx*yo -d redis

Iniciando a confiuração das filas no RabbitMQ
Os microservices baseados no DevPrime se conectam automaticamente nos serviços de Stream como o RabbitMQ.

  1. Abra o Rabbitmq no browser em http://localhost:15672
  2. Utilize o usuário e senha padrões guest / guest
  3. Vá no menu Queue > Add a new queue > “orderevents”
    Configurando filas no RabbitMQ
  4. Repita o passo do item 3 e adicione “paymentevents”

Os nomes das filas ou tópicos são utilizados nos exemplos do DevPrime. Ao longo
dos projetos você definirá outros nomes.

Parando containers e removendo imagens docker
Nesse tópico apresentamos alguns comandos básicos do docker para remover containers e até limpar todas as imagens locais. A última opção do prune é bem útil para limpar todo o Docker.

Item Comando Objetivo
1 docker kill $(docker ps -a -q) Parar os containers
2 docker rm $(docker ps -a -q) Remover os containers
3 docker rmi $(docker images -q) Remover as imagens
4 docker system prune --volumes -f -a Limpar diversas dependências
Última modificação March 24, 2022 (2b6c30d)