2015-05-29 68 views
1

我試圖在GCE中的Google容器優化虛擬機上運行Docker容器。無法將端口綁定到Google容器優化虛擬機中的容器

這是我的dockerfile。我構建了一個容器圖像並將其推送到gcr.io.

FROM nginx:1.9 
COPY config /etc/nginx 

而且我寫了一個容器清單文件。

version: v1beta2 
containers: 
    - name: test 
    image: gcr.io/myproject/test 
    ports: 
     - name: http 
     hostPort: 80 
     containerPort: 80 
     - name: https 
     hostPort: 443 
     containerPort: 443 

我使用清單文件部署到GCE,但端口綁定不像我預期的那樣。爲什麼主機端口80和443重定向到google_containers /暫停而不是myproject/test?

local$ gcloud compute instance create test \ 
    --image container-vm \ 
    --metadata-from-file google-container-manifest=container.yaml \ 
    --zone us-central1-b \ 
    --machine-type f1-micro \ 
    --tags http-server,https-server 

local$ gcloud compute ssh --zone us-central1-b test 

test$ sudo docker ps -a 
CONTAINER ID IMAGE        COMMAND    CREATED  STATUS  PORTS         NAMES 
818828ccc2c6 gcr.io/myproject/test:latest   "nginx -g 'daemon of 23 seconds ago Up 22 seconds           k8s_test.9de3822_7f9f8ecace94a22b2bea59ee14f3bcd0-test_df40d10c4dfa4 
f40d10c4dfa4 gcr.io/google_containers/pause:0.8.0 "/pause"    32 seconds ago Up 31 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp k8s_POD.c6ce2a78_7f9f8ecace94a22b2bea59ee14f3bcd0-test_default_7f9f8ecace94a22b2bea59ee14f3bcd0-test_64d51838 

回答

0

我已經更新版本的清單v1beta2 v1(v1beta3),並再次嘗試。端口綁定的結果似乎與以前相同,但容器可以通過端口80和443與外部網絡進行通信。

version:1 
kind: Pod 
spec: 
    restartPolicy: Always 
    dnsPolicy: Default 
    containers: 
     - name: test 
      image: gcr.io/myproject/test 
      imagePullPolicy: Always 
      ports: 
       - name: http 
       hostPort: 80 
       containerPort: 80 
       protocol: TCP 
       - name: https 
       hostPort: 443 
       containerPort: 443 
       protocol: TCP