2016-02-26 16 views
5

W moim Döcker-Compose:Jak korzystać z hosta podczas łączenia z kontenerem?

laravel: 
    image: trackware 
    links: 
     - postgis:postgis 
    ports: 
     - "80:80" 
     - "3306:3306" 
     - "443:443" 
     - "220:22" 
     - "8000:8000" 
    net: "host" 
    restart: always 
    volumes: 
     - C:/H/repositories/pubnub:/share 
    container_name: laravel 

postgis: 
    image: mdillon/postgis 
    env_file: .postgis_env 
    ports: 
     - "9090:9000" 
     - "54320:5432" 
    container_name: postgis 

jeśli biegnę docker-compose up -d otrzymuję ten błąd:

Conflicting options: host type networking can't be used with links. This would result in undefined behavior 

Tak, jak użyłbym net: "host" podczas linkowania do pojemnika postgis? Kontener laravel musi uruchamiać klienta pubnub, który będzie potrzebował wydajnej sieci do obsługi komunikatów w czasie rzeczywistym, a także musi łączyć się z kontenerem postgis, aby uzyskać dostęp do bazy danych.

Tak, jakaś rada? Używam dockera 1.10.2

+0

Czy było coś związanego z PubNub, które wymaga rozważenia? Nie wygląda na to, ale jest taka myśl, o którą zapytałbym. –

+1

Nie, nie ma nic związanego z PubNub tutaj – simo

+0

Możesz usunąć znacznik laravel z tego pytania, biorąc pod uwagę, że wydaje się, że jest to ogólne pytanie do tworzenia dokerów – BSchlinker

Odpowiedz

5

Ponieważ wystawiasz port postgis na host, możesz pominąć połączenie i połączyć się z nim przez localhost: 9000. Wierzę, że to zadziała, ponieważ aplikacja laravel znajduje się w sieci hostów i będą one udostępniać te porty.

+0

Próbowałem połączyć kontener django do kontenera postgis na 127.0.0.1, ale działało tylko dla localhost. –

0

Nie wiem, ale ... Nie powinieneś używać "hosta" sterownika i mapowania portów, przynajmniej nie osiągnąłbyś oczekiwanego rezultatu. W przypadku takim jak "220: 22" otrzymasz 22 portu zmapowane na maszynę hosta.

"Net" jest nieaktualny, o ile wiem, użyj "network_mode" zamiast tego. Polecam również aktualizację docker-compose do najnowszej wersji, teraz jest 1.6.2. Poprzednie wersje miały pewne problemy z siecią.

Może być używany sterownik "bridge"? W twoim przypadku nie widzę problemów, których nie można rozwiązać.

+0

Jak zaktualizować okno dokowane w oknie? Jak ukryć plik dokera do wersji 2? – simo

+0

Niestety, nie mam pewności co do systemu Windows. Spróbuj uruchomić [toolbox] (https://www.docker.com/products/docker-toolbox) i zaznacz pole "docker-compose". Informacje na temat konwertowania pliku komponentu można znaleźć w swoim przykładzie, dodając sekcje wersji i usług. Tutaj więcej o tym [link] (https://docs.docker.com/compose/compose-file/) – SLY

Powiązane problemy