6

TLDR:是否可以将两个容器与容器清单链接起来?

我正在尝试将Guestbook Sample 应用程序从 Google Container Engine docs移植到容器 vm。我在连接两个容器 vm 时遇到问题,以便 Web 应用程序可以访问 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 的解决方案工作正常,所以这就是正确的 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
4

1 回答 1

2

容器清单中没有可用的链接参数,所以很遗憾你不能那样做。

但是,您是否尝试过将 REDIS_MASTER_SERVICE_HOST 环境变量设置为 127.0.0.1?我相信这应该允许前端容器通过标准网络堆栈与 redis 容器通信。

于 2015-02-17T17:10:08.573 回答