docker linux host IP хоста (Основной операционной системы), как обращаться к службам "снаружи"
Primary tabs
Используем сеть по умолчанию (минимализм)
Cпециальное внутреннее доменное имя host.docker.internal что обращаться к основной системе (хосту) из контейра (гостевой системы) не работает в Linux (как минимум в docker 19)
Явное указание IP
Более сложный способ: можно сконфигурировать подсеть для контейнеров приложения, явно указав диапазон адресов подсети, сделать это можно так:
version: '3.7' services: web: build: ./ ports: - 9121:80 - 9123:81 volumes: - '../:/var/www/html/site' - './config/apache/apache-config.conf:/etc/apache2/sites-enabled/000-default.conf' - './config/apache/ports.conf:/etc/apache2/ports.conf' - './config/php/php.ini:/etc/php/7.4/apache2/php.ini' - './config/php/xdebug.ini:/etc/php/7.4/mods-available/xdebug.ini' networks: frontnet: ipv4_address: 172.30.1.2 db: image: postgres:12.2 volumes: - './config/postgresql:/docker-entrypoint-initdb.d' environment: POSTGRES_PASSWORD: mycool_password POSTGRES_USER: mycool_user POSTGRES_MULTIPLE_DATABASES: mycool_db,mycool_db_test ports: - 9122:5432 networks: frontnet: ipv4_address: 172.30.1.4 networks: frontnet: ipam: driver: default config: - subnet: 172.30.0.0/16
-- где строка
subnet: 172.30.0.0/16
и обеспечит для сети frontnet адрес шлюза 172.30.0.1, который будет является вашим хостом.
После чего ip 172.30.0.1 можно использовать например, в конфигурации xdebug внутри докера.
- Log in to post comments
- 1229 reads