2015-02-17 16 views
6

TLDR: È possibile collegare due contenitori al manifest del contenitore?Come collegare container docker su Container VM con un manifest?

Sto provando a portare il Guestbook Sample app from the Google Container Engine docs a container vm. Ho problemi a connettere i due contenitori vms in modo che l'app web possa accedere al servizio redis.

Funziona, se sto usando la riga di comando finestra mobile per l'istanza:

avviare l'istanza e ssh in esso:

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

creare i contenitori:

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 

Sto usando il collegamento - per collegare il guestbook al contenitore redis. Questo può essere ottenuto anche con il manifest del contenitore?

questo è il mio comando di avvio:

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

EDIT: Soluzione da Alex di utilizzare 127.0.0.1 funziona bene, in modo che il containers.yaml destra:

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 

risposta

2

C'è no link parameter available in the container manifest, quindi purtroppo non puoi farlo in quel modo.

Tuttavia, hai provato a impostare la variabile di ambiente REDIS_MASTER_SERVICE_HOST su 127.0.0.1? Credo che dovrebbe consentire al frontend container di parlare con il contenitore redis attraverso lo stack di rete standard.

+0

Hai ragione, localhost funziona bene! – Paul