📌  相关文章
📜  使用带有 minikube 的本地图像 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:49:54.609000             🧑  作者: Mango

使用带有 Minikube 的本地镜像 - Shell-Bash

在开发和测试 Kubernetes 应用程序时,一个常见的需求是使用本地构建的 Docker 镜像。快速和方便地在 Kubernetes 集群中启动这些本地构建的镜像是使用 Minikube 的好方式。本文将介绍如何在 Minikube 中使用本地构建的 Docker 镜像,以及如何将这些镜像上传到 Minikube 集群的 Docker 镜像仓库中。

前提条件

在开始本文之前,请确保您已完成以下任务:

  • 安装 Minikube
  • 安装 Docker
构建本地镜像

首先,我们需要通过 Dockerfile 构建一个本地的 Docker 镜像。以下是一个示例 Dockerfile:

FROM node:12-alpine

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

CMD ["npm", "start"]

在 Dockerfile 所在目录下运行以下命令:

docker build -t my-image:latest .

这将使用 Dockerfile 中的指令构建一个名为 my-image 的 Docker 镜像,并将其标记为 latest

启动 Minikube

使用以下命令启动 Minikube:

minikube start
连接 Minikube 的 Docker 守护进程

在 Minikube 中运行以下命令:

eval $(minikube docker-env)

这会将您的终端配置为使用 Minikube 的 Docker 守护进程。

上传本地镜像到 Minikube

现在,我们可以将本地构建的 Docker 镜像上传到 Minikube 集群的 Docker 镜像仓库中。使用以下命令:

docker tag my-image:latest $(minikube docker-env)/my-image:latest
docker push $(minikube docker-env)/my-image:latest

这将标记和推送名为 my-image 的 Docker 镜像。在此命令中,我们使用 $(minikube docker-env) 执行 Docker 进程,这可以确保镜像被推送到 Minikube 集群中的 Docker 镜像仓库。

在 Minikube 中部署本地镜像

通过以下 YAML 部署描述文件,在 Minikube 中部署本地镜像。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  selector:
    matchLabels:
      app: my-app
  replicas: 1
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-container
          image: my-image:latest
          ports:
            - containerPort: 3000

该 YAML 文件描述一个名为 my-deployment 的 Deployment,其中的 Pod 使用我们之前部署的 my-image 镜像。

使用以下命令创建该 Deployment:

kubectl apply -f my-deployment.yaml

此命令将部署一个 Pod,其中包含一个名为 my-container 的容器,该容器将使用名为 my-image 的 Docker 镜像。

在 Minikube 中激活服务:

minikube service my-deployment

这将打开浏览器,并在其中显示 my-deployment 的服务 URL。

结论

本文介绍了如何使用 Minikube 的 Docker 镜像仓库来快速启动本地构建的 Docker 镜像。该方法可以大大简化在 Kubernetes 中部署应用程序的流程。