Docker API com Python
Dica publicada em Python / Avançado
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:
Para saber a utilização de recursos de um container, pode utilizar o script:
Para saber algumas informações do Docker, pode utilizar:
Para remover um container, você pode utilizar:
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:
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:
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!
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)})
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)
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()
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')
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!