172.18.0.1
- это IP-адрес сетевого шлюза по умолчанию для докера , а не IP вашего хоста.
Вы можете выполнить эту команду, чтобы проверить это.
$ docker network inspect bridge
Docker для Mac имеет ограничений
- В macOS нет моста docker0 (он находится в хосте Docker VM на Mac и в Windows)
- Вы не можете пропинговать контейнеры (не сбривая кучу яков)
- IP-адресация для каждого контейнера невозможна
Также обратите внимание, что это означает, что опция запуска докера --net-host
не поддерживаетсяна Mac, но, возможно, это хорошо
Есть обходной путь
- Эти магические адреса разрешаются на IP хоста из контейнера
- docker.for.mac.localhost (устарело)
- docker.for.mac.host.internal (устарело)
- host.docker.internal
- Это разрешает шлюз хоста mac
Используйте имя host.docker.internal
внутри контейнера, как если бы вы использовали localhost на mac напрямую.
Не беспокойтесь об адресе привязки для туннеля:
ssh -nNT -L 4000:production-database-url:3306 jump-point
Вы не упомянули, какая база данных, но я беру ее с порта 3306, что это MySQL.
Для подключения с помощью mysql cli из контейнера, через туннель ssh на вашем хосте.Для удаленного сервера баз данных MySQL вы можете запустить:
mysql --host host.docker.internal [... other options go here]