Notícias
Novos modelos de linguagem da API Serverspace GPT
Serverspace Black Friday
RP
março 20, 2025
Atualizado março 20, 2025

Como iniciar um contêiner e usar o Docker com Python?

Python

O conceito de particionamento de recursos agora domina muitas infraestruturas de redes corporativas. Hoje, um único servidor pode conter dezenas de ambientes virtuais que operam de forma independente, alguns trabalhando juntos ou integrando-se em plataformas comuns.

Neste artigo, vamos explorar a tecnologia de virtualização e a plataforma para criação de ambientes virtuais Docker, instalando e implantando uma imagem de contêiner com Python.

Implantação de um contêiner Docker

O primeiro passo é garantir que a plataforma esteja instalada. Para isso, precisamos atualizar os pacotes e instalar o Docker. Se já estiver pré-instalado, esse passo pode ser ignorado. Para sistemas baseados em Debian, utilizamos um script automatizado para instalação:

sudo apt purge -y docker.io docker-compose docker-doc podman-docker \

curl -fsSL https://get.docker.com -o get-docker.sh \

sudo bash get-docker.sh

installation-1-768x250
Screenshot № 1 — Installation

Após seguir as boas práticas de segurança, devemos criar um usuário específico para executar o contêiner com privilégios reduzidos. Isso minimiza os riscos no caso de uma falha de segurança que permita a execução de comandos maliciosos. Para isso, usamos os seguintes comandos:

sudo adduser python && sudo usermod -aG docker python
new-user
Screenshot № 2 — Novo Usuário

Somente usuários root ou membros do grupo Docker podem acessar o socket do Docker. Portanto, adicionamos o usuário recém-criado ao grupo.

Agora podemos iniciar um contêiner base com o ambiente Python. Lembre-se de que ao rodar um contêiner, haverá um comando inicial que inicia o processo. Se esse comando for finalizado, o contêiner será encerrado. Para evitar isso, criamos um loop infinito no interpretador Bash:

sudo -u python docker run --name my_container -v data-storage:/home -d python /bin/bash -c ‘while true;do sleep 1000;done’ && sudo docker ps
run
Screenshot № 3 — Execução de um contêiner simples

Onde cada argumento desempenha uma função específica:

  • sudo -u python docker run – inicia o contêiner com permissões do usuário normal.
  • -name my_container – define o nome do contêiner como my_container.
  • -v data-storage:/home – monta o volume data-storage no diretório /home dentro do contêiner.
  • -d – executa o contêiner em segundo plano (detached mode).
  • python – usa uma imagem do Python para criar o contêiner.
  • /bin/bash -c ‘while true; do sleep 1000; done’ – cria um loop infinito dentro do contêiner para mantê-lo ativo.
  • sudo docker ps – lista os contêineres em execução.

Para acessar o contêiner, usamos o seguinte comando:

docker exec <container-id> /bin/bash
docker-shell-768x159
Screenshot № 4 — Shell do Docker

Agora podemos atualizar os pacotes e instalar um gerenciador de processos para visualizar a estrutura do ambiente PID dentro do contêiner.

htop
Screenshot № 5 — Processos em execução

Criando um servidor para os testes

Em geral, para rodar contêineres que não possuem serviços pré-instalados, é necessário preparar os recursos adequados. Ao criar um servidor em nuvem com Serverspace, os repositórios padrão incluem os pacotes essenciais para um ambiente de desenvolvimento seguro e eficiente.

Caso precise de um ambiente isolado, você pode utilizar um servidor VPS, seja na plataforma vStack Cloud ou VMware Cloud. Basta clicar no botão "Criar Servidor", selecionar a configuração desejada e iniciar a implantação.

Se os recursos locais não forem suficientes, uma alternativa eficiente é realizar a configuração em servidores em nuvem de alto desempenho, como os disponibilizados pela Serverspace.

create-server-1
Screenshot №6 — Criar Servidor

O provisionamento do servidor pode levar alguns minutos. Assim que estiver pronto, podemos nos conectar usando qualquer método disponível.

Implantação de um serviço em um contêiner Docker

Agora, vejamos um caso prático onde precisamos implantar um serviço de aplicação web dentro de um contêiner. Para isso, usaremos uma imagem base do Python e adicionaremos as dependências necessárias.

Como essa imagem é mínima, algumas bibliotecas precisam ser baixadas durante o processo. Existem duas formas de resolver isso:

  • Executando comandos de inicialização no próprio contêiner.
  • Recriando a imagem com as dependências já embutidas (opção mais recomendada).

Para este exemplo, usaremos o primeiro método, salvando um script Python diretamente dentro do contêiner:

nano /home/app.py
app
Screenshot № 7 — Criando a aplicação

Após salvar o arquivo, paramos e removemos o contêiner:

sudo docker stop $(sudo docker container ls -q -a) && sudo docker rm $(sudo docker container ls -q -a)

Agora criamos um novo contêiner com um script de inicialização que:

  • Atualiza os pacotes.
  • Instala o gerenciador de pacotes pip.
  • Instala o framework web Flask.
  • Executa a aplicação.
sudo -u python docker run --name my_container -d -v data-storage:/home -it python /usr/bin/bash -c ‘apt update && apt install python3-pip -y && python3 -m pip install flask && python3 /home/app.py’
run-2-2048x609
Screenshot № 8 — Iniciando o contêiner com a aplicação

Depois de um tempo, verificamos os logs do contêiner para garantir que o serviço foi iniciado corretamente:

sudo docker logs <container-id>
result-2048x391
Screenshot № 9 — Serviço iniciado

Ótimo! O serviço foi iniciado em um ambiente virtualizado dentro de uma máquina, permitindo que vários outros sejam executados simultaneamente em ambientes isolados. Isso melhora a eficiência, evita conflitos de dependências e aumenta a segurança dessa abordagem.

Avaliação:
4 fora de 5
Аverage rating : 4.7
Avaliado por: 3
CEP 01311-930 São Paulo Avenida Paulista, nº 1765, 7º andar, Cj. 72, CV 10172, Bela Vista
+ 55 11 5118-1047
ITGLOBAL.COM BR LTDA

Você também pode gostar...

Usamos cookies para melhorar sua experiência no Serverspace. Ao continuar a navegar em nosso site, você concorda com o Uso de Cookies e com a Política de Privacidade.