最近几天我一直在使用 Docker,并使用 Dockerfile 创建了一个基本的 Docker 映像。它只是启动一个网络服务器。现在,我一直在阅读并在 Google Application Engine 上创建了一个帐户,并希望将此映像部署到 Kubernetes。
我感到失落。
我不明白我在本地拥有的 Dockerfile 是如何转移到这个平台的?我根本不使用它们吗?我看过一些 Pod 配置示例,但据我所知,它们指的是 Docker Hub 上的图像?
有人可以为我指出正确的方向吗?
最近几天我一直在使用 Docker,并使用 Dockerfile 创建了一个基本的 Docker 映像。它只是启动一个网络服务器。现在,我一直在阅读并在 Google Application Engine 上创建了一个帐户,并希望将此映像部署到 Kubernetes。
我感到失落。
我不明白我在本地拥有的 Dockerfile 是如何转移到这个平台的?我根本不使用它们吗?我看过一些 Pod 配置示例,但据我所知,它们指的是 Docker Hub 上的图像?
有人可以为我指出正确的方向吗?
我没有使用 Kubernetes,但据我所知,我认为您必须将容器上传到 docker 映像存储库。您可以使用官方中心并在那里上传您的图片(公共图片可以免费上传,您可以免费拥有一张私人图片或支付更多费用)。你也可以拥有一个私有的 docker 镜像仓库,并配置 kubernetes 来使用它。
正如我从这篇文章中了解到的,您可以运行将 Google Cloud 存储桶与本地运行的 docker 存储库链接,然后配置一个 kubernetes pod 以指向该存储桶,并且您的所有其余 pod 都可以从那里使用 docker 映像。
首先,我自己对此有点迷茫,尽管能够制作一个基本的 php 脚本工作示例,该脚本在 Container Engine 集群内的 Google Cloud Engine vm 实例上的 docker 映像中运行。文档更简单地说明的地方
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/
完成此操作后,您可以将 docker 映像拉入 Kubernetes 设置并运行它。比如下面提到的 Dockerfile 显示:
sudo docker pull crandellws/kubernetes-php-example
sudo docker run -p 80:80 -it -d --name csupport crandellws/kubernetes-php-example
要从 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