Pular para o conteúdo principal

Docker - Utilizando o Play with Docker

O Play with Docker é uma ferramenta cloud que permite a criação de containers fornecendo toda a  infraestrutura, nela podemos criar instâncias de máquinas e diferentes ambientes utilizando Docker e Swarm.

Conhecendo o Play with Docker

A Docker criou uma ferramenta chamada Play with Docker, dentro dela encontramos Tutorias, ambiente interativo, e vários treinamentos e livros para estudos.

O Lab Environment é o ambiente interativo que permite criar e executar containers similar ao que faríamos no Docker Desktop, nele podemos realizar:
  • Estudos com Docker (Comandos, Containers, etc);
  • Testes em containers variados;
  • Provas de conceito antes de executar em um ambiente real de produção.
Para podermos utilizar esta ferramenta, antes temos que criar uma Docker ID, este cadastro nos permite utilizar varias ferramentas da Docker, tais comoPlay with Docker, Docker Hub, entre outras.

Características do Play with Docker

Após efetuar o login no Lab Environment, temos a seguinte interface:


Interface inicial do Play with Docker

Todo acesso nesta interface é baseada na criação de uma Sessão,  onde cada sessão possui um tempo de expiração de 4 horas, isso significa que o ambiente ficará ativo por este período, por esta razão que esta ferramenta deve ser utilizada exclusivamente para estudos e testes.

A Sessão será encerrada caso você clique no botão Close Session ou o termine o tempo, vale lembrar que todas as instâncias serão removidas com esta operação.

Na interface temos a opção de templates, que nos fornece templates para criação automática de clusters Docker Swarm, já definindo Managers e Workers, e poupando o trabalho da execução dos comandos de criação do cluster.

Criando a Primeira Instância

A criação dos containers depende de uma instância/node, que básicamente é uma máquina virtual que será criada e vinculada a sua sessão.

Após clicar em ADD NEW INSTANCE, temos o seguinte resultado:

Criação de uma instância no ambiente.

Aqui temos os seguintes dados:
  • ID da Instância;
  • IP, todas as instâncias estarão em uma mesma rede;
  • Uso de memória e CPU;
  • Acesso através de SSH (Assim podemos conectar ao ambiente através da nossa máquina local ou docker-machine).

Criando um Container com Tomcat e JDK 14

Como primeiro exemplo, iremos criar um container baseado no Tomcat 9.0 rodando no OpenJDK 14, que até o momento é ultima versão do Java SE.

Para encontrar imagens basta acessar o Docker Hub (principal repositório de imagens Docker) e realizar uma pesquisa pela ferramenta desejada, muitas possuem imagens oficiais e também existem opções publicadas pelos usuários da comunidade.

Resultado da pesquisa por Tomcat no Docker Hub.

Vamos efetuar o pull da imagem:

docker pull tomcat:9.0.34-jdk14-openjdk-oracle

Criação do container com o nome tomcatJDK14, e com a flag -d para que rode em modo daemon:

docker run --name tomcatJDK14 -d -p 8080:8080 tomcat:9.0.34-jdk14-openjdk-oracle

Após criar o container podemos acessar o recurso através do browser, o Play with Docker cria automaticamente um acesso as portas expostas na criação dos containers, e caso não seja criado, podemos criar através da opção Open Port.
Porta do Tomcat exposta para acesso.

Ao acessar o Tomcat vemos uma tela de 404, este é comportamento padrão desse container, que significa que não temos nenhuma aplicação rodando no contexto, mas o Tomcat esta funcionando normalmente.

Acesso na url que expõem a porta 8080 do Tomcat

Criando um Container NGINX

Como segundo exemplo iremos criar um container com o servidor web nginx, este é um servidor que vem sendo muito utilizado por sua performance e simplicidade nas configurações.

Resultado da pesquisa por NGINX no Docker Hub.

Vamos efetuar o pull da imagem, neste caso não vamos especificar a tag (padrão latest):

docker pull nginx

Criação do container com o nome nginxWeb, e com a flag -d para que rode em modo daemon:

docker run --name nginxWeb -d -p 80:80 nginx

Agora nas opções de acesso, temos a porta 80 do nginx exposta junto com a 8080 do Tomcat:

Portas dos serviços do NGINX e Tomcat expostas.

Ao acessar o serviço do nginx temos o seguinte resultado:

Acesso ao container do nginx.

Conclusão

Com Play with Docker podemos montar desde ambientes simples com somente um container, até ambientes complexos com cluster swarm com replicas e serviços globais, é uma ótima ferramenta para testes e estudos das características dos containers Docker.

Referências



Comentários

Postagens mais visitadas deste blog

Utilizando LocalDate, LocalDateTime e LocalTime na Prática

Tudo bem pessoal, hoje iremos avaliar e analisar operações de manipulação de Datas envolvendo a JavaTime API introduzida no Java 8.

Exemplos da java.time API
Já se passaram alguns anos desde o lançamento do Java 8 e mesmo após este período, há empresas que desconhecem o poder da java.time API, esta foi uma nova API de datas introduzida no Java 8 visando resolver problemas que tínhamos com as velhas classes Date e Calendar.

Vamos mostrar vários exemplos práticos do uso da API:
Criação de objetos No exemplo abaixo, estamos criando os objetos para manipulação de datas, perceba que temos 3 tipos, sendo LocalDate para manipular datas, LocalDateTime para manipular data/hora e LocalTime para horas:
LocalDate localDate = LocalDate.now(); LocalDateTime localDateTime = LocalDateTime.now(); LocalTime localTime = LocalTime.now();
Utilizando formatação Aqui realizamos a operação de formatação, perceba que não foi necessário utilizar a classe SimpleDateFormat, que usaríamos em conjunto com D…

Lendo e Manipulando arquivos CSV com Java

Olá hoje veremos como realizar a leitura e manipulação de arquivos CSV com Java, mostrando que as novas versões da plataforma Java deixaram algumas tarefas simples de serem realizadas.

Exemplo de Arquivo Hoje em dia é comum ao realizar integrações ou carga de dados o uso de arquivos CSV, isto porque, este arquivo possui uma estrutura de fácil entendimento e simples de manipular na maioria das plataformas de desenvolvimento.

Para realizar a leitura dos dados vamos manipular um arquivo com as seguintes colunas: namecpfagephone address:

name;cpf;age;phone;address caio;123456789;20;1145223643;AvenidaPaulista vinicius;147852369;18;1125253625;AvenidaManoel sandra;963258741;30;1174587858;RuaTeixeira regina;125478522;40;1145254536;RuaFernando fernando;785245563;42;1145253669;RuaPereira augusto;456123014;50;1125363633;AvenidaPaulinia maria;456123789;10;1125455525;AvenidaNossaSenhora
Para representar os dados em objetos Java iremos utilizar a seguinte classe:

importlombok.AllArgsConstruc…

Versionamento de Banco Dados com Flyway

Olá pessoal, hoje iremos analisar e aprender como realizar o versionamento e gerenciamento das bases de dados relacionais utilizando o framework Flyway.

Versionamento de Banco Dados Ao trabalhar com desenvolvimento de sistemas é comum realizarmos o versionamento, isso porque uma aplicação pode necessitar de correções, novas funcionalidades e evoluções, onde para garantir a compatibilidade e cuidar do seu ciclo de vida, geramos versões onde é especificado quais itens estão presentes em cada release.
Vamos imaginar seguinte cenário: Sistema ERP1.0.0: Entrega dos módulos Financeiro e RH;1.1.0: Entrega do módulo Contas a Receber. Perceba que a ideia é controlar o que cada versão possui de diferente, e para controlar essas mudanças no lado da aplicação existem várias técnicas e ferramentas, mas e para controlar as mudanças no lado do Banco de dados ? 
Para isso podemos utilizar ferramentas de versionamento que ajudam a realizar este controle, a ferramenta que iremos utilizar é o Flyway.
Con…