Docker API com Python

Publicado por Mundo Docker em 08/10/2015

[ Hits: 3.170 ]

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

Monitorando o consumo de containers Docker

Docker Exec

Docker - API Autenticada

Docker: Persistindo dados -BTSync

Docker Capabilities

Leitura recomendada

Lançamento do Stoq versão 0.8.10

Curso Gratuito - Python 3 na Web com Django (Básico e Intermediário)

Livro: Python para desenvolvedores

Internacionalização dos programas em Python

Programando em Python no VIM com recurso de auto-completar (python-jedi)

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts