Docker se da cuenta de la interconexión de contenedores
fondo de escritura:
Cuando jugaba con Docker, no podía distinguir la relación entre el puerto del host y el puerto del contenedor, por lo que la conexión falló. Al final, me tomó mucho tiempo aprender a comprender, así que escribí este artículo para grabar mi crecimiento
Clave de conexión:
Los contenedores conectados entre sí deben estar en la misma red. Como docker-compose.ymlestablece el mismo networksvalor
Acceso entre contenedores, utilizando el puerto propio del contenedor
Experiencia personal:
La máquina host se laradockinstala gitlabcon el jenkinscontenedor. Host a través de http://localhost:8989un acceso normal gitlabde la webpágina de http://localhost:8090acceso normal jenkinsde webla página
Me gustaría jenkinsno tener acceso a gitlabla página, y luego http://localhost:8989el localhostinterruptor para 127.0.0.1, contenedor IP, nombre del contenedor, pero no todas las conexiones estén
Luego, después de NN horas de revisar la información y las pruebas, finalmente se descubrió que el acceso mutuo entre contenedores se basaba en la misma red y luego se accedía a través de los puertos abiertos del propio contenedor, lo que no tenía nada que ver con el mapeo.
Por lo tanto, en la docker-compose.ymlconfiguración en el perfil gitlabdel jenkinscontenedor networkses el mismo valor, se establecen enbackend
networks:
- backend
Finalmente jenkinspase al interior http://gitlabpara acceder. URLLos que están dentro gitlabse analizarán en gitlabcontenedores IP. El 8989puerto no se usa aquí porque gitlabla webpágina está en el 80puerto del contenedor.