2015-02-17 20 views
6

TLDR: Czy można połączyć dwa kontenery z manifestem kontenera?Jak połączyć kontenery dokerów w VM kontenera z manifestem?

Próbuję przenieść numer Guestbook Sample app from the Google Container Engine docs do container vm. Mam problemy z połączeniem dwóch kontenerów vms, aby aplikacja internetowa mogła uzyskać dostęp do usługi redis.

To działa, jeśli używam wiersz polecenia Döcker na przykład:

uruchomić instancję i ssh do niego:

gcloud compute instances create guestbook-vm --image container-vm --machine-type g1-small 
gcloud ssh guestbook-vm 

tworzenia zbiorników:

sudo docker run -d --name redis -p 6379:6379 dockerfile/redis 
sudo docker run -d --name guestbook -p 3000:80 --link redis:redis -e "REDIS_MASTER_SERVICE_HOST=redis" -e "REDIS_MASTER_SERVICE_PORT=6379" brendanburns/php-redis 

Używam -link do połączenia księgi gości z kontenerem redis. Czy można to również osiągnąć za pomocą manifestu kontenera?

to moja komenda start:

gcloud compute instances create guestbook-vm --image container-vm --machine-type g1-small --metadata-from-file google-container-manifest=containers.yaml 

EDIT: Rozwiązanie z Alex użyć 127.0.0.1 działa dobrze, więc to prawo containers.yaml:

version: v1beta2 
containers: 
    - name: redis 
    image: dockerfile/redis 
    ports: 
     - name: redis-server 
     containerPort: 6379 
     hostPort: 6379 
    - name: guestbook 
    image: brendanburns/php-redis 
    ports: 
     - name: http-server 
     containerPort: 80 
     hostPort: 3000 
    env: 
     - name: REDIS_MASTER_SERVICE_HOST 
     value: 127.0.0.1 
     - name: REDIS_MASTER_SERVICE_PORT 
     value: 6379 

Odpowiedz

2

Jest no link parameter available in the container manifest, więc niestety nie możesz tego zrobić w ten sposób.

Jednak czy próbowałeś po prostu ustawić zmienną środowiskową REDIS_MASTER_SERVICE_HOST na 127.0.0.1? Uważam, że powinno to pozwolić kontenerem frontendowym na komunikowanie się z kontenerem redis poprzez standardowy stos sieciowy.

+0

Masz rację, localhost działa dobrze! – Paul