6

TLDR: 2 つのコンテナーをコンテナー マニフェストにリンクすることは可能ですか?

Guestbook Sample アプリを Google Container Engine ドキュメントからコンテナ vmに移植しようとしています。Web アプリが redis サービスにアクセスできるように、2 つのコンテナー VM を接続するのに問題があります。

インスタンスで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

編集: 127.0.0.1 を使用する Alex のソリューションは正常に動作するため、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 に答える