Alojar Docker Interno en Linux

Isaac Tony 20 junio 2023
Alojar Docker Interno en Linux

Docker permite a los desarrolladores crear, probar e implementar aplicaciones de manera eficiente envolviéndolas en unidades estandarizadas llamadas contenedores. Cuando trabaje con contenedores Docker, puede encontrar escenarios en los que desee conectar su contenedor con el host.

Equivalente en Linux del comando host.docker.internal

Las versiones de Docker anteriores a 18.03 admitían el comando host.docker.internal solo en sistemas Mac y Windows. Sin embargo, la versión 20.10.0 de Docker se lanzó en diciembre de 2020 y las versiones posteriores admiten el uso del comando host.docker.internal para conectarse al host en máquinas Linux.

De acuerdo con la documentación de Docker, si el host tiene una dirección IP cambiante, podemos conectarnos al host usando host.docker.internal, que se resuelve en la dirección IP interna del host. Sin embargo, esto solo se puede utilizar en el entorno de desarrollo.

En Windows y Mac, usar host.docker.internal para conectarse al host es mucho más fácil. Supongamos que quisiéramos conectarnos a un servicio MySQL que se ejecuta en el puerto predeterminado del host, 3606.

Podemos hacer que el contenedor Docker se conecte a este servicio usando el siguiente comando.

Código:

host.docker.internal:3306

En un sistema Linux, por otro lado, necesitamos agregar una etiqueta adicional antes de que podamos conectarnos con éxito al host. Esto solo se aplica a las versiones de Docker posteriores a 20.10.0 al agregar el indicador --add-host junto con el comando docker run.

Código:

docker run -d --add-host host.docker.internal:host-gateway new_container

Este comando agrega una nueva entrada al director etc/hosts, asignando host.docker.internal a la puerta de enlace del host. Alternativamente, también podemos usar 172.17.0.1, también conocido como localhost, que es la dirección de la puerta de enlace para la red puente predeterminada en Docker.

Las redes Docker son un tema amplio, y los comandos o métodos anteriores se pueden usar de manera diferente según lo que desee lograr.

Autor: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn