Docker: Habilitar conexión remota por tcp

En ocasiones necesitamos conectarnos de manera remota a un servidor docker para gestionar los contenedores, por ejemplo, para que un pipeline haga algún cambio.

Nota importante. No usar este método para acceder a docker desde internet, ya que no tiene algún mecanismo de autenticación, este método es adecuado para servidores en la misma red o a través de una vpn.

Para esto podemos habilitar la conexión usando un puerto tcp, lo primero que habrá que hacer es editar el archivo /lib/systemd/system/docker.service y buscar la siguiente línea:

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

 

Agregamos al final -H tcp://0.0.0.0:4243

Quedando se la siguiente manera:

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:4243

 

Dónde:

  • 0.0.0.0 es la ip desde la que podremos conectarnos (si dejamos 0.0.0.0 permitirá conectar desde cualquier lado, lo cuál no es recomendado para producción).

  • 4243 es el puerto a través del cual nos conectaremos.

 

Recargamos la configuración:

sudo systemctl daemon-reload

 

Reiniciamos el servicio:

sudo systemctl restart docker

 

Probando la configuración.

Para probar la conexión vamos a nuestro cliente y definimos la variable de entorno DOCKER_HOST de la siguiente manera:

export DOCKER_HOST='tcp://miservidordocker:4243'

Y eso es todo, al ejecutar docker ps -a veremos los contenedores ejecutando en nuestro servidor remoto.

Etiquetas
Like