docker - 如何在 docker 中运行简单的 minikube?
问题描述
我正在尝试按照本指南上的说明进行操作,但在 docker 下。
我设置了一个文件夹:
.
├── Dockerfile
└── main.py
0 directories, 2 files
main.py
是:
#!/usr/bin/env python3
print("Docker is magic!")
Dockerfile 是:
FROM python:latest
COPY main.py /
CMD [ "python", "./main.py" ]
FROM python:3.7-alpine
COPY ./ /usr/src/app/
WORKDIR /usr/src/app
RUN apk add curl openssl bash --no-cache
RUN curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" \
&& chmod +x ./kubectl \
&& mv ./kubectl /usr/local/bin/kubectl
kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
kubectl expose deployment hello-node --type=LoadBalancer --port=38080
minikube start --driver=docker
kubectl get pods
当我运行 docker run python-test 时,我在终端中看到:
Docker is magic!
但我没有看到 get pods 输出。
我的目标是minikube
在 docker 中运行一个简单的打印 pod 列表的程序。这里有什么问题?
解决方案
如果你想在 docker 容器中使用 kubernetes,我的建议是使用 k3d 。
k3d 是在 docker.k3d 中运行 k3s(Rancher Lab 的最小 Kubernetes 发行版)的轻量级包装器,使得在 docker 中创建单节点和多节点 k3s 集群变得非常容易,例如在 Kubernetes 上进行本地开发。
您可以通过 Docker 直接下载、安装和使用它。有关更多信息,您可以关注来自https://k3d.io/的官方文档。
要获取 pod 列表,您不需要在 docker 容器内创建 k8s 集群。您需要的是任何 k8s 集群的配置文件。├── Dockerfile ├-- config └── main.py 0个目录,3个文件
在那之后 :
FROM python:latest
COPY main.py /
CMD [ "python", "./main.py" ]
FROM python:3.7-alpine
COPY ./ /usr/src/app/
WORKDIR /usr/src/app
RUN apk add curl openssl bash --no-cache
RUN curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" \
&& chmod +x ./kubectl \
&& mv ./kubectl /usr/local/bin/kubectl
COPY config ~/.kube/config
# now if you execute k get pods you can get the list of pods
#Example;
RUN kubectl get pods
要获取此文件配置,您可以点击此链接使用 kubeconfig 文件组织集群访问
我希望这可以帮助您解决您的问题。
推荐阅读
- crystal-reports - Crystal Reports 中的条件求和
- python - 用户输入日期字符串(“年”或“月”),它适用于 date.userinputdate
- c - Mac 中的代码块上没有此类文件或目录错误
- bash - 在 Bash vs ZSH 中结合 heredoc 和输入重定向
- mongodb - 来自带有 $merge 的 mongo 聚合管道的错误
- python - 对从不同规则网格生成的多元数据进行插值
- php - 如果用户已经存在于 Laravel 中,如何编写返回响应?
- shell - 在 Shell 中将 2 个文件与过去合并 - 换行 / 回车 \n 问题
- python - Pytorch Dist.broadcast 不起作用 - 导致正在广播的排名停止工作
- google-cloud-sql - 如何在 Google Cloud SQL 上自动更新我的公共 IP 的授权网络