O Docker é uma plataforma de software que simplifica o processo de desenvolvimento, implantação e execução de apps dentro de containers. Depois de uma apresentação da tecnologia aqui, de ensinarmos alguns comandos, de ensinarmos a instalar o Docker… hoje vamos aprender a criar a primeira aplicação e a colocá-la num container.
Container são ambientes isolados e leves que têm tudo o que a app precisa para ser executada, incluindo bibliotecas, dependências e código. Com o Docker, os programadores podem empacotar as suas aplicações com todas as partes necessárias, garantindo consistência entre diferentes ambientes, desde o desenvolvimento até a produção. Isso torna a implantação de apps mais rápida, confiável e escalável.
Primeira app e container em Docker
#1 – Criação do projeto
Para este projeto vamos criar 2 ficheiros. Um ficheiro com o nome Dockerfile e um ficheiro com o nome app.py.
#2 – Ficheiro app.py
Dentro do ficheiro app.py vamos inserir o seguinte código em Python:
#!/usr/bin/env python3
print("Olá Mundo! Viva o Pplware")
Na prática, quando este script for executado escreve no ecrã: “Olá Mundo! Viva o Pplware”.
#3 – Ficheiro Dockerfile
Vamos agora criar o ficheiro Dockerfile e colocar a seguinte informação. Na prática, indicamos que pretendemos ter a última versão do python, copiamos o script app.py para a raiz do sistema e depois executamos o script. DE referir que este tutorial foi feito para Linux.
FROM python:latest
COPY app.py /
CMD [ "python", "./app.py" ]
#4 – Criar imagem Docker
Para criar a imagem Docker, basta que execute este comando na pasta onde tem os ficheiros app.py e Dockerfile
docker build -t primeiraapp .
#5 – Executar a app
Para executar a app, basta que corra o seguinte comando:
docker run primeiraapp
Pode ver informações sobre o container usando o comando docker ps -a.
Como já referimos, as vantagens do Docker são mais que muitas, até porque desta forma o tempo de deploy é bastante reduzido comparativamente a outras soluções (ex. virtualização). Uma solução criada em Docker é altamente portável (conceito: Desenvolve uma vez… executa em qualquer lugar).