Docker 打包 K8s镜像的应用实例

 更新时间:2025年03月18日 09:42:36   作者:姚毛毛-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 daemon启动问题

    解决Docker daemon启动问题

    这篇文章主要介绍了解决Docker daemon启动问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • docker 查看jvm内存占用方式

    docker 查看jvm内存占用方式

    这篇文章主要介绍了docker 查看jvm内存占用方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • docker compose 入门安装使用

    docker compose 入门安装使用

    本文介绍Docker Compose基础命令与集群启动操作,重点讲解容器扩容至多实例部署博客的流程,并提供compose.yaml配置示例,适用于初学者掌握Docker Compose的使用方法,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2025-09-09
  • Docker在Windows上安装和使用教程(加速容器应用开发)

    Docker在Windows上安装和使用教程(加速容器应用开发)

    Docker依赖Linux内核,需部署于Linux系统或虚拟环境,安装需确认架构、下载安装包、重启验证,操作流程简洁高效,本文给大家介绍Docker在Windows上安装和使用教程,感兴趣的朋友跟随小编一起看看吧
    2025-09-09
  • 使用docker创建和运行跨平台的容器化mssql数据库

    使用docker创建和运行跨平台的容器化mssql数据库

    这篇文章主要介绍了使用docker创建和运行跨平台的容器化的mssql数据库,本章介绍了在window10专业版下如何利用docker创建mssql数据库,需要的朋友可以参考下
    2022-05-05
  • Docker跨主机网络(overlay)的实现

    Docker跨主机网络(overlay)的实现

    这篇文章主要介绍了Docker跨主机网络(overlay)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 使用 VPS 下载 Docker 镜像并导入到本地服务器的过程

    使用 VPS 下载 Docker 镜像并导入到本地服务器的过程

    这篇文章主要介绍了使用 VPS 下载 Docker 镜像并导入到本地服务器,通过使用 VPS 下载 Docker 镜像并将其传输到本地服务器,我们可以克服网络限制,更灵活地管理和部署 Docker 镜像,需要的朋友可以参考下
    2024-08-08
  • 使用Docker快速安装grafana的基本步骤

    使用Docker快速安装grafana的基本步骤

    Grafana 是一个强大的开源监控和数据分析平台,它能够与各种数据源集成,并提供灵活的可视化和仪表盘功能,下面给大家分享Docker 中安装 Grafana 的基本步骤,感兴趣的朋友一起看看吧
    2024-01-01
  • docker容器配置启动参数

    docker容器配置启动参数

    通过添加参数,我们可以在启动 Docker 容器时灵活地配置容器的行为,本文介绍了通过命令行和 Dockerfile 两种方式添加参数的方法,并给出了常用参数的示例,希望本文能帮助您理解如何在 Docker 启动时添加参数,并正确地配置和管理 Docker容器
    2023-10-10
  • Docker开启TLS和CA认证的方法步骤

    Docker开启TLS和CA认证的方法步骤

    本文主要介绍了Docker开启TLS和CA认证的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08

最新评论