Reading time: < 1 minute
Today I’m going to show you how you can connect two containers defined in separate docker-compose.yml files.
We have the following:
File 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" MYSQL_USER: "user" MYSQL_PASSWORD: "pass" 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
And the file 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
In this case, I have created these two docker-compose files to connect the database externally with PHPMyAdmin.
First, we run and create the miservicio_mariadb container, and then we run and create the phpmyadmin service.
Through external_links, phpmyadmin will communicate with the created mariadb service.
To execute everything, you need to enter the following in the terminal:
docker-compose -p db-f docker-compose-db.yml up -d docker-compose -p phpmyadmin -f docker-compose-phpmyadmin.yml up -d
We have the following:
File 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" MYSQL_USER: "user" MYSQL_PASSWORD: "pass" 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
And the file 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
In this case, I have created these two docker-compose files to connect the database externally with PHPMyAdmin.
First, we run and create the miservicio_mariadb container, and then we run and create the phpmyadmin service.
Through external_links, phpmyadmin will communicate with the created mariadb service.
To execute everything, you need to enter the following in the terminal:
docker-compose -p db-f docker-compose-db.yml up -d docker-compose -p phpmyadmin -f docker-compose-phpmyadmin.yml up -d