1

Я пытаюсь сделать так, чтобы MySQL был обнаружен всеми экземплярами докера и локальным хостом на удаленном сервере, но блокировал MySQL от внешней связи, за исключением определенного IP-адреса (мой домашний IP) или через туннель SSH.

Недавно я обнаружил, что в файле docker-compose.yml вы можете указать в разделе ports следующее:

mysql: image: mysql:5.7 ports: - "127.0.0.1:3306:3306"

Однако это означает только то, что он доступен для локального хоста и не может использоваться любым другим интерфейсом.

Вы можете спросить: «Ну, почему бы тебе не пройти через SSH Tunnel?«Ну, это решение, которое обязательно для подключения к экземпляру docker на удаленном компьютере напрямую, однако я не могу позволить моим локальным контейнерам docker использовать этот туннельный порт, в частности контейнер PHP 7.1.

Я также попытался изменить IPTables, чтобы игнорировать все внешние коммуникации через порт 3306, но по какой-то причине он все еще открыт.

У меня есть Putty, настроенный на туннельный порт 3306 на удаленном порту 10000 на локальном. MySQL Workbench может обращаться к нему на 10000, как обычно, поэтому туннель выполняет свою работу.

По сути, моя цель здесь - разрешить приложению на моем локальном хосте обращаться к удаленной базе данных, но не открывать удаленное для эффективного bind 0.0.0.0 , поскольку это крайне небезопасно, и я понимаю, что лучший способ получить доступ к MySQL через туннели напрямую коробка над SSH.

Я смотрел на то, чтобы моя локальная докерская попытка использовать IP хоста, expose_hosts для docker-compose, всякого рода. Стучу головой о стену здесь.

1 ответ1

0

Я считаю, что на вашем локальном компьютере вам нужно привязать Tunel к вашему сетевому интерфейсу докера, а не к localhost или 0.0.0.0. Это позволит вам использовать этот порт из контейнеров, не открывая его извне.

На моем компьютере мой интерфейс докера (docker0) имеет адрес 172.17.0.1 , поэтому я бы попытался привязаться к этому адресу, а затем подключиться к этому адресу из контейнера.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .