欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 【k8s004】 Docker 打包 K8s镜像

【k8s004】 Docker 打包 K8s镜像

2025/3/20 4:15:52 来源:https://blog.csdn.net/yy448671246/article/details/146325493  浏览:    关键词:【k8s004】 Docker 打包 K8s镜像

文章目录

    • 一. 准备工作
      • 1. 安装 Docker: [官方安装文档](https://docs.docker.com/get-docker/)
      • 2. 准备应用代码(示例使用 Node.js 应用)
    • 二. 创建 Dockerfile
      • 3、构建镜像(注意最后的点号)
      • 4、测试运行
      • 5、推送镜像到仓库
      • 6、 Kubernetes 部署文件示例
      • 7、部署到 Kubernetes
    • 三、注意事项
      • 8、常用调试命令
    • 四、注意事项
      • 9、最佳实践

一. 准备工作

1. 安装 Docker: 官方安装文档

https://docs.docker.com/get-docker

2. 准备应用代码(示例使用 Node.js 应用)

二. 创建 Dockerfile

```dockerfile
# 使用官方基础镜像
FROM node:18-alpine# 设置工作目录
WORKDIR /app# 复制依赖文件
COPY package*.json ./# 安装依赖
RUN npm install# 复制源代码
COPY . .# 暴露端口
EXPOSE 8080# 启动命令
CMD ["npm", "start"]
```

3、构建镜像(注意最后的点号)

docker build -t my-app:1.0.0 .#查看镜像
docker images | grep my-app

4、测试运行

运行容器docker run -d -p 8080:8080 --name my-app my-app:1.0.0验证运行curl <http://localhost:8080>

5、推送镜像到仓库

# 登录 Docker Hub
docker login# 标记镜像
docker tag my-app:1.0.0 username/my-app:1.0.0# 推送镜像
docker push username/my-app:1.0.0

6、 Kubernetes 部署文件示例

deployment.yaml

 apiVersion: apps/v1kind: Deploymentmetadata:name: my-appspec:replicas: 3selector:matchLabels:app: my-apptemplate:metadata:labels:app: my-appspec:containers:- name: my-appimage: username/my-app:1.0.0ports:- containerPort: 8080resources:limits:memory: "512Mi"cpu: "500m"

service.yaml

  apiVersion: v1kind: Servicemetadata:name: my-app-servicespec:selector:app: my-appports:- protocol: TCPport: 80targetPort: 8080type: LoadBalancer

7、部署到 Kubernetes

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml# 查看部署状态
kubectl get pods
kubectl get service

三、注意事项

  • ‌镜像标签‌: 避免使用 latest 标签,推荐语义化版本控制
  • ‌私有仓库‌: 如果使用私有仓库需配置 imagePullSecrets
  • ‌多阶段构建‌: 生产环境推荐使用多阶段构建减小镜像体积
  • ‌安全扫描‌: 使用 docker scan 扫描镜像漏洞
  • ‌资源限制‌: 在 Deployment 中合理配置 CPU/Memory 限制

8、常用调试命令

# 查看容器日志
kubectl logs <pod-name># 进入容器调试
kubectl exec -it <pod-name> -- /bin/sh# 删除部署
kubectl delete -f deployment.yaml

四、注意事项

9、最佳实践

  • 使用 .dockerignore 文件排除不需要的文件
  • 配置健康检查(liveness/readiness probes)
  • 使用 CI/CD 流水线自动化构建和部署
  • 为不同环境维护不同的部署清单
  • 定期更新基础镜像的安全补丁

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词