Se você é novo no Docker e containers, aprender a implantar uma aplicação de API Python Flask no Docker é uma ótima maneira de começar. O Docker permite que você containerize aplicativos com tecnologia leve e segurança para implantação rápida de aplicativos.
Neste tutorial, você aprenderá a se tornar o mestre na configuração e implantação de aplicações de API Python Flask em containers Docker.
Prepare-se e comece a implantar!
Pré-requisitos
Se você quiser seguir passo a passo, precisará ter o seguinte instalado:
- Máquina Ubuntu com Docker instalado. Este tutorial utiliza Ubuntu 18.04.5 LTS com Docker v19.03.8.
- Python v3.9 ou posterior instalado na máquina Ubuntu. Este tutorial usará Python v3.9.2 em uma máquina Ubuntu.
- Pacote Elinks instalado na máquina Ubuntu usada para testar a API neste tutorial.
Criando uma Aplicação de API Python Flask (APIs GET e POST)
Inicie este tutorial criando uma aplicação Python Flask. Flask é um framework de aplicação web micro escrito em Python e leve WSGI. Flask fornece ferramentas úteis e recursos para criar aplicações web em Python.
Antes de criar uma aplicação Python Flask, você instalará o Flask e o ambiente virtual Python, onde o Flask executará a aplicação.
1. Faça login em sua máquina Ubuntu usando seu cliente SSH favorito.
2. Em seguida, execute os seguintes comandos para criar um diretório chamado ~/docker_python_flask_demo e mude para ele. Este diretório conterá todos os arquivos necessários para que o Python e o Docker executem uma aplicação.
3. Execute o comando pip
abaixo para instalar
um ambiente virtual Python (virtualenv
) necessário para o Flask executar as aplicações. Um ambiente virtual Python oferece seu próprio binário Python e pacotes instalados por aplicação para evitar conflitos com outras aplicações.

4. Execute o comando virtualenv
abaixo para criar e ativar um ambiente virtual usando o módulo venv
.

5. Agora, execute o comando abaixo para instalar o pacote Python flask
com o gerenciador de pacotes pip
.
6. Execute o seguinte comando para ativar pacotes no seu ambiente virtual antes de começar a instalar ou usar eles. Isso modifica a variável de ambiente VIRTUAL_ENV
para apontar para o seu ambiente virtual e adiciona o binário Python do ambiente virtual ao caminho para que você execute o binário correto.
7. Crie mais um arquivo, nomeado requirements.txt, e defina a dependência da aplicação Flask, conforme mostrado abaixo.
8. Crie um arquivo de texto ~/docker_python_flask_demo/app.py e preencha o arquivo com o código Python abaixo.
O código Python abaixo importa a classe Python flask
e cria uma instância de classe chamada app
. A instância de classe app
contém duas funções login()
executadas quando os usuários enviam solicitações na página /login
.
A função success()
então é executada, exibindo a mensagem de boas-vindas “nome-do-usuário” no navegador.
9. Crie mais um arquivo chamado ~/docker_python_flask_demo/form.html e copie/cole o código abaixo.
A execução do código HTML abaixo cria um formulário com dois campos de entrada; um é texto para fornecer seu nome e o outro é um botão de envio.
Assim que você fornecer um nome de usuário e clicar no botão de envio, uma solicitação POST é enviada e o Flask executa outra função e abre uma nova página da web em http://localhost:5000/success/<username>.
10. Por fim, execute o comando Python
abaixo para verificar se a aplicação (app.py
) funciona localmente no seu sistema.
Como você pode ver abaixo, a aplicação está sendo executada com sucesso na máquina Ubuntu, mas não no Docker. Você lançará a mesma aplicação no Docker nas seguintes seções.

Criando um Dockerfile para Implementar a Aplicação Python Flask API
Você acabou de criar e verificar que a aplicação Python Flask funciona localmente na sua máquina. Mas antes de implantar a aplicação no Docker, você primeiro criará um Dockerfile para definir todos os conjuntos de instruções para construir a imagem Docker.
Crie um arquivo chamado Dockerfile no diretório ~/docker_python_flask_demo, e copie/cole o conteúdo abaixo no Dockerfile.
Docker usará este Dockerfile para executar todas as instruções ou comandos necessários para construir uma nova imagem Docker em cima da imagem base (ubuntu:18.04
).
Agora, execute o comando tree
abaixo para verificar se todos os arquivos necessários para executar a aplicação Python Flask estão contidos no diretório de trabalho (~/docker_python_flask_demo).

Construindo uma Imagem Docker para a Aplicação Python Flask API
Agora você possui os arquivos necessários para implantar uma aplicação Python Flask, mas esses arquivos não farão nada a menos que você construa uma imagem. Você executará o comando docker build
para construir uma imagem Docker com base nas instruções definidas no Dockerfile.
Execute o comando docker build
abaixo para criar uma imagem Docker no diretório de trabalho (.
). Este comando adiciona tags (-t
) à imagem, nomeando-a como flask-image
na versão 1 (:v1
).

Agora, execute o comando docker
abaixo para listar todas as imagens disponíveis.
Abaixo, você pode ver vários atributos retornados, como REPOSITORY. Observe que o nome do REPOSITORY é flask-image e está marcado com uma versão (v1), conforme mostrado abaixo.

Executando a Aplicação Python Flask em um Contêiner Docker
Após criar uma imagem Docker, você pode executar a aplicação Python Flask em um contêiner Docker. Um contêiner Docker empacota o código e suas dependências para executar aplicativos rapidamente.
1. Execute o comando docker run
abaixo para realizar o seguinte:
- Inicie o contêiner no modo destacado (
-d
), para que ele seja executado como um processo em segundo plano e retorne a saída do console durante a criação. - Mapeie a porta do host do Docker (
-p 5000:5000
) com a porta do contêiner. - Inicie o contêiner Docker (
flask-image:v1
)
2. Em seguida, execute o comando docker
abaixo para listar todos os containers no mecanismo do Docker. Verifique se o Docker criou o container com sucesso.

3. Por fim, execute o comando abaixo para abrir seu navegador da web na máquina Ubuntu usando o elinks.
O comando abre o navegador da web no terminal e solicita um nome, como mostrado abaixo.
Insira seu nome e pressione o botão Enviar.

4. Como você pode ver abaixo, após pressionar o botão Enviar, a função de login redireciona para a função de sucesso na aplicação Flask.

Conclusão
Este tutorial teve como objetivo ajudá-lo no processo de configuração de um contêiner Docker para uma API Python Flask usando imagens do Docker. Você também aprendeu como iniciar contêineres Python Flask usando Dockerfiles, o que permite editar e criar contêineres personalizados de sua escolha.
E quais outras aplicações você tem em mente para implantar em um contêiner Docker? Talvez um contêiner Docker MongoDB?