Подтвердить что ты не робот

Как подключиться к локальному серверу MySQL через Docker?

Это более общий вопрос о том, как подключиться к локальным сервисам через Docker. Там аналогичный вопрос в проблеме Github здесь, который, похоже, не имеет никакого разрешения. То, что я действительно ищу, - это возможность локально работать с локальным сервером MySQL MySQL, а затем, когда я готов к развертыванию, проверить локально на вновь созданное изображение докеры-кандидата развертывания.

В идеале, оба получают настройки с одного и того же места, поэтому я мог бы поставить mysql_server: host_ip. Это кажется типичным вариантом использования. Возможно ли подобное в настоящее время?

Я использую Boot2Docker специально для сервера MySQL, работающего на моем компьютере Mac OS X Yosemite NOT в контейнере. Было бы здорово иметь более общий ответ для будущих читателей.

4b9b3361

Ответ 1

Docker CLI docs дает это решение (предполагается, что вы работаете на хосте Linux с):

Иногда вам нужно подключиться к хосту Docker из вашего контейнера. Чтобы включить это, передайте IP-адрес хостов Docker в контейнер, используя флаг --add-host. Чтобы найти адрес хоста, используйте команду ip addr show.

Флаги, которые вы передаете в ip addr show, зависят от того, используете ли вы в сети IPv4 или IPv6. Используйте следующие флаги для поиска адреса IPv4 для сетевого устройства с именем eth0:

$ HOSTIP=`ip -4 addr show scope global dev eth0 | grep inet | awk '{print \$2}' | cut -d / -f 1`
$ docker run  --add-host=docker:${HOSTIP} --rm -it debian

Затем имя docker внутри контейнера будет отображаться на IP-адрес хоста. Для вашего случая вы можете использовать docker run --add-host=mysql_server:$(hostip) ...

При использовании Boot2Docker он устанавливает сопоставление с хостом по предопределенному адресу, поэтому на этой платформе эквивалент вышесказанного является только одной командой:

$ docker run  --add-host=docker:192.168.59.3 --rm -it debian

Ответ 2

Чтобы помочь с несколькими дополнительными вопросами и основным сообщением, я хотел бы ссылка на репо. Мне удалось управлять моим локальным развитие. Я прекратил попытки запуска любой службы для моей разработки непосредственно на OS X и использовать контейнеры Docker, поскольку они точно такие же, что и при производстве, и мои среды могут быть сопоставлены и оптимизированы.

Это репо состоит из веб-сервера, сервера базы данных и контейнера данных для загрузки баз данных MySQL.

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

Docker Repo на GitHub