2014-12-18 23 views
12

Jest to bardziej ogólne pytanie, jak połączyć się z usługami lokalnymi za pośrednictwem Docker. Podobne pytanie pojawia się w wydaniu Github here, które nie ma żadnej rozdzielczości. Czego tak naprawdę szukam, to móc wykonać programowanie lokalnie na moim lokalnym serwerze MySQL, a następnie gdy będę gotowy do wdrożenia, przetestować lokalnie na nowo utworzonym obrazie dokowanego kandydata do wdrożenia.Jak połączyć się z lokalnym serwerem MySQL za pośrednictwem Docker?

Idealnie, oba ustawienia uzyskują z tego samego miejsca, więc mogę umieścić mysql_server: host_ip. Wydaje się to typowym przypadkiem użycia. Czy coś takiego jest obecnie możliwe?

Używam Boot2Docker specjalnie z serwerem MySQL działającym na systemie operacyjnym Mac OS X Yosemite NIE w kontenerze. Byłoby fajnie mieć ogólniejszą odpowiedź dla przyszłych czytelników.

Odpowiedz

12

Docker CLI docs dać tego rozwiązania (które zakłada, że ​​jest uruchomiony na komputerze z Linuksem):

Czasem trzeba połączyć się z hostem Docker od wewnątrz kontenera. Aby to umożliwić, przekaż adres IP hosta Docker do kontenera za pomocą flagi --add-host. Aby znaleźć adres hosta, użyj polecenia ip addr show.

Flagi przekazywane do ip addr show zależą od tego, czy korzystasz z sieci IPv4 lub IPv6 w swoich kontenerach. Użyj następujących flagi dla adresów IPv4 pobierania dla urządzenia sieciowego o nazwie 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 

Następnie nazwa docker wewnątrz pojemnika będzie mapować do adresu IP hosta. W Twoim przypadku można użyć docker run --add-host=mysql_server:$(hostip) ...

przypadku korzystania Boot2Docker, ustawia się mapowanie do hosta w zdefiniowanym adresem, więc na tej platformie odpowiednik wyżej jest tylko jedno polecenie:

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

To jest dobre, ale o ile mogę powiedzieć, że nie działa na Mac. Polecenie 'ip' nie jest instalowane domyślnie i nie mogę znaleźć żadnego sposobu na jego zainstalowanie (" ip "jest trudny do znalezienia google). Czy możesz podać więcej porad na temat tego, jak to działa na komputerze Mac? – Eli

+0

Masz MySQL działa na komputerze Mac? Docker działa w niektórych maszynach wirtualnych działających na komputerze Mac? Czy mógłbyś podać jakieś szczegóły dotyczące konfiguracji? – Bryan

+2

Jeśli używasz Boot2Docker, to ustawia hosta Mac jako 192.168.59.3 – Bryan

0

Aby pomóc w kilku dodatkowych pytaniach i głównym wpisie, chciałbym link to a repo zarządzać moim rozwojem lokalnym. Przestałem próbować uruchomić dowolną usługę dla mojego rozwoju bezpośrednio na OS X i używać kontenerów Docker, ponieważ są one dokładnie takie same podczas produkcji, a moje środowiska mogą być dopasowane i usprawnione.

To repozytorium składa się z serwera WWW, serwera bazy danych i kontenera danych, aby załadować bazy danych MySQL.

Mam i będę nadal obsługiwać to repozytorium, a ostatnio zaktualizowałem dokumentację, aby stała się kluczowa dla innego programisty.

Docker Repo on GitHub

Powiązane problemy