📜  how-to-use-own-local-doker-images-with-minikube - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:01:09.286000             🧑  作者: Mango

如何在Minikube中使用本地Docker镜像

在开发Kubernetes应用程序时,通常需要部署通过Docker镜像构建的容器。在本地开发过程中,使用Minikube可以方便地在本地环境中运行Kubernetes集群,从而可以本地测试容器中的应用程序。

本文将向您展示如何使用本地Docker镜像在Minikube中部署Kubernetes应用程序。

步骤一:启动Minikube

首先,您需要安装并启动Minikube。如果您还没有安装它,请按照官方文档中的说明进行安装和配置。

步骤二:构建一个Docker镜像

在本地开发环境中通常需要多次构建和测试Docker镜像。在本例中,我们将使用一个简单的Node.js应用程序来演示如何构建Docker镜像。

FROM node:12-alpine
WORKDIR /app
COPY . .
RUN npm install --production
CMD ["node", "app.js"]

将上述代码保存为名为“Dockerfile”的文件,并将Node.js应用程序的源代码放在同一目录下。现在,运行以下命令以构建Docker镜像:

docker build -t myapp:v1 .
步骤三:将Docker镜像推送到本地Docker注册表

Minikube默认使用本地Docker守护程序,因此在将Docker镜像部署到Minikube之前,您需要将其推送到本地Docker注册表。您可以使用以下命令从Docker CLI推送您的Docker镜像:

docker tag myapp:v1 localhost:5000/myapp:v1
docker push localhost:5000/myapp:v1
步骤四:在Minikube中部署Kubernetes应用程序

现在,我们已经将我们的Docker镜像推送到本地Docker注册表,可以在Minikube中使用它来部署我们的Kubernetes应用程序。在执行以下命令之前,请确保您已经退出本地Docker守护程序:

eval $(minikube docker-env)
kubectl create deployment myapp --image=localhost:5000/myapp:v1
kubectl expose deployment myapp --type=NodePort --port=8080

这将:

  • 将您的终端设置为使用Minikube Docker守护程序
  • 使用Docker镜像创建名为“myapp”的Kubernetes Deployment
  • 将“myapp”Deployment暴露到localhost:8080
步骤五:测试应用程序

现在您的应用程序已经部署在Minikube中。您可以使用以下命令获取暴露应用程序的端口:

minikube service myapp --url

访问这个URL将显示您的应用程序。

总结

在本文中,我们演示了如何使用Minikube和Docker将本地Docker镜像部署到Kubernetes环境中。根据您的需要,您可以替换Node.js应用程序并使用其他编程语言和环境构建自己的Docker镜像。