将Docker镜像部署到Kubernetes

时间:2014-12-13 09:56:31

标签: java-ee docker google-compute-engine kubernetes

我最近几天一直在使用Docker,我用Dockerfile创建了一个基本的Docker镜像。它只是启动一个Web服务器。现在,我一直在阅读并在Google Application Engine上创建一个帐户,并希望将此图像部署到Kubernetes。

我感到迷茫。

我不明白我的本地Dockerfiles是如何转移到这个平台的?我根本不用它们吗?我已经看到了一些Pod配置的例子,但到目前为止我可以看到他们在Docker Hub上引用图像?

有人能指出我正确的方向吗?

3 个答案:

答案 0 :(得分:1)

我没有和Kubernetes合作,但据我所知,我认为你必须上传到容器到docker图像库。您可以使用官方中心并在那里上传您的图像(公共图像可以免费上传,您可以免费使用一个私人或支付更多费用)。 您还可以拥有一个私有的docker镜像存储库,并配置kubernetes来使用它。

据我所知this post,您可以使用本地运行的docker存储库运行Google Cloud存储桶链接,然后将kubernetes pod配置为指向该存储桶,其余所有pod都可以使用docker镜像从那里。

答案 1 :(得分:0)

首先,我自己有点迷失,虽然能够在Container Engine集群内的Google Cloud Engine vm实例上的docker镜像中运行php脚本的基本工作示例。文档更简单地陈述

  

Container Engine群集是一组计算引擎实例   跑Kubernetes ......

所以回答问题

请参阅以下GitHub存储库https://github.com/CrandellWS/Kubernetes-Php-Example

有最少的文件和来源。您将在根目录中找到Dockerfile,在src文件夹中找到一个php页面。

通过docker设置了自动构建,可以在https://registry.hub.docker.com/u/crandellws/kubernetes-php-example/

找到

复制此操作将通过分配GitHub存储库并设置自动构建来完成,请参阅:http://docs.docker.com/docker-hub/builds/

完成此操作后,您可以将泊坞窗图像拉入Kubernetes设置并运行它。如下面的节目提到的Dockerfile:

sudo docker pull crandellws/kubernetes-php-example
sudo docker run -p 80:80 -it -d --name csupport crandellws/kubernetes-php-example

https://cloud.google.com/container-engine/docs/

答案 2 :(得分:0)

要从GKE上的私有存储库中提取图像,我们需要创建docker-registry类型的密钥进行身份验证。

kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>

如下所示,在您的yaml文件中包含imagePullSecrets标记,您将能够从提到的存储库中提取图像。

apiVersion: v1
kind: Pod
metadata:
    name: pull-demo
spec:
    containers:
    - name: pull-demo-container
      image: nginx
    imagePullSecrets:
    - name: regsecret