Unir dos contenedores definidos dentro de dos docker-compose.yml distintos usando external_links en Docker Compose

Tiempo de lectura: < 1 minuto

Hoy os voy a enseñar cómo podéis unir dos contenedores definidos dentro de dos docker-compose.yml distintos.

Tenemos lo siguiente:

Archivo docker-compose-db.yml

version: "3.1"

services:
  miservicio_mariadb:
    image: mariadb
    container_name: mariadb_container
    env_file:
      - ./Dockerfile/mysql.env
    environment:
      MYSQL_DATABASE: "db"
        # So you don't have to use root, but you can if you like
      MYSQL_USER: "user"
        # You can use whatever password you like
      MYSQL_PASSWORD: "pass"
        # Password for root access
      MYSQL_ROOT_PASSWORD: "pass_root"
    volumes:
      - ./config/mariadb:/var/lib/mysql
    expose:
      - 3306
    ports:
      - 3306:3306
    networks:
      - docker-network
networks:
  docker-network:
    driver: bridge
    external: true

Y el archivo docker-compose-phpmyadmin.yml

version: "3.1"

services:
  phpmyadmin:
    image: phpmyadmin
    restart: always
    container_name: phpmyadmin_container
    ports:
      - 8080:80
    environment:
      - PMA_ARBITRARY=1
    external_links: 
      - miservicio_mariadb:db
    networks:
      - docker-network
networks:
  docker-network:
    driver: bridge
    external: true

En este caso, he creado estos dos archivos de docker-compose para comunicar la base de datos de forma externa con PHPMyadmin.

Primero ejecutamos y creamos el contenedor de miservicio_mariadb y luego ejecutamos y creamos el servicio phpmyadmin.

Mediante external_links se comunicará phpmyadmin con el servicio mariadb creado.

Para ejecutar todo, tenemos que introducir esto en el terminal:

docker-compose -p db-f docker-compose-db.yml up -d
docker-compose -p phpmyadmin -f docker-compose-phpmyadmin.yml up -d

Deja un comentario