Docker 打包 K8s镜像的应用实例
作者:姚毛毛-aione1.com
文章介绍了如何使用Docker打包和部署Kubernetes镜像,包括准备工作、创建Dockerfile、构建镜像、测试运行、推送镜像、Kubernetes部署文件示例、部署到Kubernetes等步骤,并提供了注意事项和最佳实践,感兴趣的朋友一起看看吧
一. 准备工作
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/v1 kind: Deployment metadata: name: my-app spec: replicas: 3 selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - name: my-app image: username/my-app:1.0.0 ports: - containerPort: 8080 resources: limits: memory: "512Mi" cpu: "500m"
service.yaml
apiVersion: v1 kind: Service metadata: name: my-app-service spec: selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 8080 type: 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 流水线自动化构建和部署
- 为不同环境维护不同的部署清单
- 定期更新基础镜像的安全补丁
到此这篇关于 Docker 打包 K8s镜像的文章就介绍到这了,更多相关 Docker 打包 K8s内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- 打包docker镜像推送到远程服务器并部署到k8s的方法步骤
- k8s手动拉取docker镜像的方法示例
- 基于Docker的K8s(Kubernetes)集群部署方案
- 带你快速了解Docker和k8s的使用及说明
- k8s 与docker空间使用分析与清理方法
- docker-desktop启动k8s的详细方法
- 教你如何将应用从docker-compose迁移到k8s中
- skywalking容器化部署docker镜像构建k8s从测试到可用
- 在docker中部署k8s的方法
- 基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境的详细教程
- Docker+K8S 集群环境搭建及分布式应用部署
- k8s部署docker容器的实现