@diman40
Python junior

Как настроить подключение к БД MYSQL: контейнер — контейнер на одном сервере?

Добрый день.
Хочу настроить работу docker приложения (php+lighttpd) с подключением к внешней БД MySQL.
БД работает тоже в контейнере на этом же хосте, наружу выставлен порт 0.0.0.0:3306

Не смог настроить подключение из php+lighttpd к БД по адресу хост-сервера. Если БД запущена так же в контейнере, но на другом сервере, то подключение работает. В рамках одного сервера - нет.
Для одного сервера заработало только после добавления external подсети в настройки php+lighttpd, но подозреваю, что есть более правильное решение.
docker-compose.yml:
version: '3.7'

services:
  php5:
    build: ./images/php5
    restart: "always"
    networks:
      - backend
    volumes:
      - ./www:/var/www/
    ports:
      - "9000:9000"

  lighttpd:
    build: ./images/lighttpd
    restart: "always"
    networks:
      - frontend
      - backend
      - mysql_default
    links:
      - "php5:php-fpm"
    depends_on:
      - php5
    volumes:
      - ./www:/var/www/
      - ./images/lighttpd/etc/lighttpd:/etc/lighttpd
      - ./logs/lighttpd:/var/log/lighttpd/
    ports:
      - "8081:80"
networks:
  frontend:
  backend:
  mysql_default:
    external: true
  • Вопрос задан
  • 169 просмотров
Решения вопроса 1
Насколько я понимаю, контейнеры приложения и контейнер с mysql деплоятся отдельными файлами и принадлежат к отдельным бриджам в докере. Если это так, то все верно - они изорированны друг от друга, но доступны для хост-машины, которая знает о существовании и подключена ко всем доступным сеткам.
Посмотрите здесь: https://docs.docker.com/network/bridge/

То есть вам нужно или подключить дополнительные бриджи к приложению (как вы и сделали), или завести их в одну сетку (бридж) вместе с базой, или воспользоваться дефолтным бриджом (чего документация нам не рекомендует на продакшене, так как изоляция меньше).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы