3. Biblioteca encontrada no link: https://github.com/docker/docker-py
Para usar a biblioteca com python, antes é necessário ter o docker instalado no
python, para isso basta digitar os seguintes comandos:
$ apt-get instal python-pip
Após instalar o pip execute:
$ pip install docker
E agora, como testar ? ...
4. De acordo com a documentação, rodando um script semelhante a esse:
import docker
client = docker.from_env()
retorno = client.containers.run("ubuntu", " echo Olá Senhoras e Senhores.")
print(retorno)
iago@iagomachado:~/Desktop/tasks/docker_api_python $ python script.py
Ola Senhoras e Senhores
5. $ Docker PS
iago@iagomachado:~/Desktop/tasks/docker_api_php/docker-php$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
52b84f7f64cc ubuntu "echo Ola Senhoras..." 1 second ago Up Less than a second
gallant_panini
Documentação Oficial: https://docker-py.readthedocs.io/en/stable/
7. Biblioteca encontrada no link: https://github.com/docker-php/docker-php
A melhor forma de instalar o docker PHP é com o comando:
$ composer require docker-php/docker-php
Possíveis erros:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- docker-php/docker-php-api v4.1.25.1 requires php >=7.1 -> your PHP version (7.0.27) does not satisfy that requirement.
- docker-php/docker-php-api v4.1.25.0 requires php >=7.1 -> your PHP version (7.0.27) does not satisfy that requirement.
- Installation request for docker-php/docker-php-api 4.1.25.* -> satisfiable by docker-php/docker-php-api[v4.1.25.0, v4.1.25.1].
8. Solution:
Basta usar o seguinte parâmetro no comando: " --ignore-platform-reqs "
Ficando dessa forma:
$ composer require docker-php/docker-php --ignore-platform-reqs
Feito, agora é só testar ….
10. <?php
require "vendor/autoload.php";
use DockerDocker;
$docker = Docker::create();
$containers = $docker->containerList();
foreach ($containers as $container) {
var_dump($container->getNames());
}
Tentei rodar no terminal: $ php teste.php
PHP Parse error: syntax error, unexpected '=' in
/home/iago/Desktop/tasks/docker_api_php/docker-
php/vendor/jane-php/open-api-
runtime/Client/Psr7HttplugClient.php on line 42
Script recomendado pela documentação oficial:
11. Rodando o mesmo script em uma máquina virtual da Digital Ocean foi a solução.
root@devprodutos-teste-iago:~/docker-php# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
bc123d2212ea 636118772f2e "/bin/bash -e /init/…" 4 minutes ago Up 4 minutes 8080/tcp,
8443/tcp blissful_chebyshev
Muito obrigado Jerônimo!
root@devprodutos-teste-iago:~/docker-php# php teste.php
array(1) {
[0]=>
string(19) "/blissful_chebyshev"
}
Documentação Oficial: http://docker-
php.readthedocs.io/en/latest/
12. E outras possíveis bibliotecas?
- https://packagist.org/packages/stage1/docker-php - Indica a mesma de PHP
mencionada anteriormente.
- https://www.mundodocker.com.br/docker-api-com-python/ -
- http://containertutorials.com/py/docker-py.html -
- No python a criação e usabilidade da Docker API sempre segue a mesma
lógica.