我最近几天一直在使用Docker,我用Dockerfile创建了一个基本的Docker镜像。它只是启动一个Web服务器。现在,我一直在阅读并在Google Application Engine上创建一个帐户,并希望将此图像部署到Kubernetes。
我感到迷茫。
我不明白我的本地Dockerfiles是如何转移到这个平台的?我根本不用它们吗?我已经看到了一些Pod配置的例子,但到目前为止我可以看到他们在Docker Hub上引用图像?
有人能指出我正确的方向吗?
答案 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
答案 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