Docker API com Python

Publicado por Mundo Docker em 08/10/2015

[ Hits: 4.920 ]

Blog: http://www.mundodocker.com.br

 


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)})

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!

Outras dicas deste autor

Docker - API Autenticada

Sysdig para Ops

Docker: Persistindo dados -BTSync

Monitorando o consumo de containers Docker

Docker Capabilities

Leitura recomendada

Python3 demorando a compilar numpy e/ou pandas [Resolvido]

Livro: Python para desenvolvedores

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

Python - capturar a saída do programa em um arquivo ou variável

Lançamento do Stoq versão 0.8.10

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts