Docker API com Python

Publicado por Mundo Docker em 08/10/2015

[ Hits: 3.806 ]

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: Persistindo dados -BTSync

Docker Capabilities

Sysdig para Ops

Docker - API Autenticada

Docker, Git e PHP

Leitura recomendada

Lançamento do Stoq versão 0.8.10

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

Ordenando dicionários em Python

Livro: Python para desenvolvedores

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

  

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