Se você é novo no Docker e em 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 aplicações com tecnologia leve e segurança para implantação rápida de aplicativos.
Neste tutorial, você aprenderá a se tornar seu próprio 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ê deseja 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 utilizará 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 Python Flask API (APIs GET e POST)
Comece este tutorial criando uma aplicação Python Flask. Flask é um framework de aplicação web micro leve, escrito em Python, que segue a especificação WSGI. Flask oferece ferramentas úteis e recursos para criar aplicações web em Python.
Antes de criar uma aplicação Python Flask, você instalará o Flask e um 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 Python e 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 os pacotes em seu ambiente virtual antes de começar a instalá-los ou usá-los. Isso modifica a variável de ambiente VIRTUAL_ENV
para apontar para 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, chamado requirements.txt, e defina a dependência da aplicação Flask, como 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 flask
do Python e cria uma instância da classe chamada app
. A instância da 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.
Ao executar o código HTML abaixo, é criado um formulário com dois campos de entrada; um é 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, é enviado um pedido POST 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 seções seguintes.

Criando um Dockerfile para Implantar 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 para o Dockerfile.
Docker usará este Dockerfile para executar todas as instruções ou comandos necessários para construir uma nova imagem Docker sobre a 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ê tem 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 que você definiu no Dockerfile.
Execute o comando docker build
abaixo para construir uma imagem Docker no diretório de trabalho (.
). Este comando marca (-t
) a imagem como flask-image
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 REPOSITÓRIO. Observe que o nome do REPOSITÓRIO é flask-image e está marcado com uma versão (v1), como mostrado abaixo.

Executando a Aplicação Python Flask em um Contêiner Docker
Após criar uma imagem Docker, agora 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 desanexado (
-d
), para que ele seja executado como um processo em segundo plano e retorne a saída do console após a criação. - Mapeia a porta do host do Docker (
-p 5000:5000
) com a porta do contêiner. - Inicia o contêiner Docker (
flask-image:v1
)
2. Em seguida, execute o comando docker
abaixo para listar todos os containers no motor 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 clique no botão Enviar.

4. Como você pode ver abaixo, após clicar no 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 API Python Flask usando imagens Docker. Você também aprendeu como lançar contêineres Python Flask usando Dockerfiles, o que permite editar e construir contêineres personalizados de sua escolha.
E quais outras aplicações você tem em mente para implantar em contêiner Docker? Talvez um contêiner Docker MongoDB?