
Para conectar los dos Docker Compose por separado usando la misma red, necesitas crear una red personalizada en Docker y luego agregar todos los servicios de los dos Docker Compose a esa red personalizada.
Aquí está el archivo de Docker Compose actualizado para Nginx Proxy Manager con el nombre de la red personalizada my-network agregado:
version: '3.7'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
ports:
- '80:80'
- '81:81'
- '443:443'
environment:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm"
DB_MYSQL_NAME: "npm"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
- ./dhparam:/etc/nginx/dhparam
depends_on:
- db
networks:
my-network:
aliases:
- proxy
restart: always
db:
image: 'jc21/mariadb-aria:latest'
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./data/mysql:/var/lib/mysql
networks:
my-network:
aliases:
- db
restart: always
networks:
my-network:
driver: bridge
Aquí está el archivo de Docker Compose actualizado para PHP + MariaDB + phpMyAdmin con el nombre de la red personalizada my-network agregado:
version: '3.7'
services:
web:
image: php:7.4-apache
ports:
- "8000:80"
volumes:
- ./src:/var/www/html
environment:
MYSQL_HOST: db
MYSQL_DATABASE: myapp
MYSQL_USER: user
MYSQL_PASSWORD: password
depends_on:
- db
networks:
my-network:
aliases:
- web
restart: always
db:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: myapp
MYSQL_USER: user
MYSQL_PASSWORD: password
volumes:
- ./data/mysql:/var/lib/mysql
networks:
my-network:
aliases:
- db
restart: always
phpmyadmin:
image: phpmyadmin:latest
ports:
- "8080:80"
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: password
depends_on:
- db
networks:
my-network:
aliases:
- phpmyadmin
restart: always
networks:
my-network:
external: true
El archivo de Docker Compose para PHP + MariaDB + phpMyAdmin usa la red personalizada my-network creada por el Docker Compose para Nginx Proxy Manager. La última sección networks se asegura de que Docker Compose busque la red personalizada my-network creada en el Docker Compose para Nginx Proxy Manager.
Para ejecutarlos hay que poner esto:
docker-compose -p nginx-proxy -f /ruta/al/docker-compose-nginx-proxy.yml up -d && docker-compose -p php-app -f /ruta/al/docker-compose-php-app.yml up -d
¡Con esta configuración, ambos Docker Compose se comunican entre sí a través de la red personalizada my-network! Los servicios pueden acceder a otros servicios utilizando los alias configurados en las secciones networks de cada Docker Compose.
Por ejemplo, el servicio web en el Docker Compose de PHP + MariaDB + phpMyAdmin puede acceder al servicio de la base de datos en el Docker Compose de Nginx Proxy Manager utilizando el alias db. De manera similar, el servicio Nginx Proxy Manager puede acceder al servicio web en el Docker Compose de PHP + MariaDB + phpMyAdmin utilizando el alias web.

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.