Pique #19: Cómo exponer la API de Docker
Estaba haciendo unas pruebas contra la API de Docker y por defecto, no viene habilitada la "opción" para consumirla remotamente. En este artículo te muestro como habilitarla.
Atención: Esto es para usar en un ambiente de pruebas, no recomiendo exponer la API hacia Internet. Últimamente hay muchos casos donde malware hacen uso de esa API expuesta de manera insegura.
Para habilitar la exposición de la API, debemos editar el siguiente archivo:
$ vim /lib/systemd/system/docker.service
Buscamos lo siguiente:
ExecStart
La línea que veremos, por defecto, se verá algo así:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Y nosotros le agregaremos lo siguiente, para que se vea así:
ExecStart=/usr/bin/dockerd -H fd:// -H=tcp://0.0.0.0:2375 --containerd=/run/containerd/containerd.sock
Guardamos y cerramos y ejecutamos lo siguiente:
$ sudo systemctl daemon-reload
Y por último:
$ sudo systemctl restart docker
Para comprobar que esta todo bien, podemos consultar las imágenes de Docker que tenemos descargadas. Lo hacemos, de la siguiente manera:
$ curl http://docker-host:2375/images/json
Nos debería devolver algo como esto:
[{"Containers":-1,"Created":1596503345,"Id":"sha256:51f43ca5bbf8fd3f76b3daa3bc280109463660feaf62b5d1f359637f1f032f39","Labels":null,"ParentId":"","RepoDigests":["portainerci/agent@sha256:df840cd4fcec3d6248fc334e1ed7e65b5ca7fa3d01655a1b050e76e12c558a0e"],"RepoTags":["portainerci/agent:develop"],"SharedSize":-1,"Size":89848087,"VirtualSize":89848087}]
Así que eso es todo, podemos usar la API para monitorear remotamente el host o bien, para conectar herramientas de Management como Portainer.
¿Dudas o consultas? no dudes en dejar un comentario.