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
- 1855 reads