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.serviceBuscamos lo siguiente:
ExecStartLa línea que veremos, por defecto, se verá algo así:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockY 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.sockGuardamos y cerramos y ejecutamos lo siguiente:
$ sudo systemctl daemon-reloadY por último:
$ sudo systemctl restart dockerPara 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/jsonNos 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.