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!
Nenhum comentário foi encontrado.