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.
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