Вынести docker контейнеры из localhost
Подскажите, как я могу настроить сеть контейнеров, чтобы я мог к ним подключаться по определенному ip, а не по локалхосту (речь о подключении из браузера). Расчет на то, что у меня будет несколько проектов, у каждого из них будет свой контейнер php, nginx и mysql. Пока один проект, docker-compose.yml:
version: "3.7"
services:
php:
build:
args:
uname: ${PHP_UNAME}
uid: ${PHP_UID}
gid: ${PHP_GID}
context: ./docker/php
container_name: ${PROJECT_NAME}_php
image: ${PROJECT_NAME}_php
restart: unless-stopped
volumes:
- ./docker/php/php.ini:/usr/local/etc/php/php.ini
- ./:/var/www/${PROJECT_NAME}
environment:
PHP_IDE_CONFIG: serverName=${XDEBUG_STORM_SERVER_NAME}
PROJECT_NAME: ${PROJECT_NAME}
networks:
main_network:
ipv4_address: ${PHP_HOST}
depends_on:
- db
db:
image: mysql
restart: unless-stopped
container_name: ${PROJECT_NAME}_db
environment:
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_USER: ${DB_USERNAME}
ports:
- ${DB_PORT}:3306
volumes:
- ./services/database/dump:/var/lib/mysql
networks:
main_network:
ipv4_address: ${DB_HOST}
nginx:
image: nginx
restart: unless-stopped
container_name: ${PROJECT_NAME}_nginx
ports:
- ${NGINX_LOCAL_PORT}:80
volumes:
- ./:/var/www/${PROJECT_NAME}
- ./docker/nginx/conf:/etc/nginx/conf.d
networks:
main_network:
ipv4_address: ${NGINX_HOST}
depends_on:
- php
networks:
main_network:
driver: bridge
name: ${PROJECT_NAME}_main_network
ipam:
driver: default
config:
- subnet: ${SUBNET_IP}/${SUBNET_MASK}