2015-05-29 23 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 
相关问题