Подцепляем прод БД на свой компьютер

Иногда надо использовать продовую БД на своей локальной машине.
Например mysql

(далее все описано под мак)

Шаг первый, прокидываем mysql на свой компьютер:

/usr/local/bin/sshpass  -p ПАРОЛЬ  ssh -p22224 -L 3311:127.0.0.1:3306 ubuntu_admin1@200.200.200.200

В последней сборке запретили использовать sshpass, но это можно обойти

Итак, p22224 — это порт удаленной машины

-L 3311:127.0.0.1:3306 — это означает открыть локально порт 3311 с удаленной машины 127.0.0.1:3306

ubuntu_admin1@200.200.200.200 — это куда мы ципляемся

Дальше, в своей программе, которая запущена в докере пишем host.docker.internal или docker.for.mac.host.internal или docker.for.mac.localhost
Все!!!

Docker v 18.03 и выше (с 21 марта 2018 года)

Используйте свой внутренний адрес IP или подключитесь к специальному имени DNS host.docker.internal , которое будет преобразовано во внутренний адрес IP, используемый хостом.

Linux ожидающая поддержки https://github.com/docker/for-linux/issues/264

MacOS с более ранними версиями Docker
Docker для Mac с v 17.12 по v 18.02

То же, что и выше, но вместо этого используйте docker.for.mac.host.internal .

Docker для Mac с v 17.06 по v 17.11

То же, что и выше, но вместо этого используйте docker.for.mac.localhost .

Решение проблемы нашлось тут https://coderoad.ru/24319662/%D0%9A%D0%B0%D0%BA-%D0%BC%D0%BD%D0%B5-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F-%D0%BA-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D1%83-localhost-%D0%B8%D0%B7%D0%BD%D1%83%D1%82%D1%80%D0%B8-%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%D0%B0-Docker