Как связать контейнеры докеров на виртуальной машине контейнера с манифестом?

TL; DR: можно ли связать два контейнера с манифестом контейнера?

Я пытаюсь перенести образец приложения гостевой книги из документации Google Container Engine в container vm. У меня проблемы с подключением двух контейнерных виртуальных машин, чтобы веб-приложение могло получить доступ к службе Redis.

Это работает, если я использую командную строку docker на экземпляре:

запустите экземпляр и войдите в него по ssh:

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

создать контейнеры:

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

Я использую --link для подключения гостевой книги к контейнеру Redis. Можно ли это сделать с помощью манифеста контейнера?

это моя стартовая команда:

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

РЕДАКТИРОВАТЬ: решение от Alex для использования 127.0.0.1 работает нормально, так что это правильный container.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

person Paul    schedule 17.02.2015    source источник


Ответы (1)


параметр ссылки недоступен в манифесте контейнера, поэтому, к сожалению, вы можете Так не делай.

Однако пробовали ли вы просто установить для переменной среды REDIS_MASTER_SERVICE_HOST значение 127.0.0.1? Я считаю, что это должно позволить контейнеру внешнего интерфейса взаимодействовать с контейнером Redis через стандартный сетевой стек.

person Alex Robinson    schedule 17.02.2015