Conectarse a un contenedor MySQL desde otro contenedor
Ha configurado un contenedor Docker que ejecuta MySQL y ha expuesto el puerto 3306, pero ¿cómo puede hacerlo? ¿Accede a esa base de datos desde otro contenedor?
Usando la dirección IP
Inicialmente, intentó conectarse usando la dirección IP del contenedor MySQL (172.17.0.2). Si bien esto funciona, no es ideal ya que las direcciones IP pueden cambiar.
Redes definidas por el usuario
Un mejor enfoque es utilizar redes definidas por el usuario para conectar contenedores. Puede crear una red y adjuntarle los contenedores MySQL y PHP.
docker network create my_network
Vincular contenedores
Ejecute ambos contenedores en la misma red, proporcionando el nombre de la red usando el indicador --network:
docker run -d --name php_container --network my_network my_php_image docker run -d --name mysql_container --network my_network my_mysql_image
Dentro de los contenedores en esa red, puede resolver los nombres de los contenedores y conectarse usando el nombre de host. Por ejemplo, desde el contenedor PHP, podrías conectarte a MySQL usando:
$mysqli = new mysqli("mysql_container", "mattia", "prova", "prova");
Conclusión
Las redes definidas por el usuario proporcionan una forma más sólida y flexible de conectar contenedores en Docker. El uso de nombres de contenedores como nombres de host simplifica el acceso y elimina la necesidad de depender de direcciones IP.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3