Pular para o conteúdo

Docker API com Python

Dica publicada em Python / Avançado
Mundo Docker mundodocker
Hits: 5.877 Categoria: Python Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Docker API com Python

Oi pessoal,

Gostaria de compartilhar com vocês alguns exemplo de uso da API do Docker utilizando o Python. Como explicado em nosso Blog:
Docker disponibiliza uma API de integração que pode ser utilizada através de diversas linguagens de programação, neste link é possível ver todas bibliotecas disponíveis:
Vamos a prática!

Primeiro você deve instalar a biblioteca Docker no Python, para isso instale o pip.

Se for CentOS 7:

# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum -y install python-pip


Se for Ubuntu:

# apt-get instal python-pip

Instalado o pip, execute:

# pip install docker-py

Para criar um container você pode utilizar o seguinte script:

import docker
objdocker = docker.Client(base_url="unix://var/run/docker.sock")
container = objdocker.create_container(image=imagem, command=comando, hostname=host+":4500",mem_limit="1000m",name=nome_Container)
objdocker.start(container,port_bindings={port_Container: ('0.0.0.0', port_Host)})
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Para saber a utilização de recursos de um container, pode utilizar o script:

import docker
objdocker = docker.Client(base_url="unix://var/run/docker.sock")
objdocker.stats_container = objdocker.stats('nome_Container')
for stat in objdocker.stats_container:
print(stat)

Para saber algumas informações do Docker, pode utilizar:

import docker
objdocker = docker.Client(base_url="unix://var/run/docker.sock")
objdocker.info()

Para remover um container, você pode utilizar:

import docker
objdocker = docker.Client(base_url="unix://var/run/docker.sock")
objdocker.stats_container = objdocker.stop('nome_Container')

Você pode também habilitar a API do Docker para ser acessível remotamente, para isso, basta editar o /etc/sysconfig/docker (CentOS) ou /etc/init/docker.conf (Ubuntu) deixando-o assim:

DOCKER_OPTS='-H tcp://0.0.0.0:PORTA -H unix:///var/run/docker.sock'

Reinicie o Docker:

# service docker restart

E pronto, agora você pode manipular esse host de Docker remotamente, pode utilizar os mesmos script acima trocando apenas a base_url, algo parecido com isso:

objdocker = docker.Client(base_url="tcp://host_remoto:PORTA",,version="1.20",timeout=30)

A partir disso é possível realizar algumas automatizações de tarefas, e claro é possível integrar isso em algum dashboard ou ferramenta para poder administrar seus containers de forma mais organizada.

Espero ter ajudado, abraço!

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Docker Exec

Docker - API Autenticada

Docker Capabilities

Docker, Git e PHP

Monitorando o consumo de containers Docker

Internacionalização dos programas em Python

Livro: Python para desenvolvedores

RTV - Acessando o Reddit via terminal

Hardware Project Simulator 0.2 com interface gráfica e correções

Ordenando dicionários em Python

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.