当前位置: 首页 > article >正文

K8s docker-compose的入门

一、Docker Compose 简介

  1. 什么是 Docker Compose?
    • 用于定义和运行多容器 Docker 应用的工具。
  2. Docker Compose 的主要功能
    • 使用 docker-compose.yml 文件定义服务。
    • 一键启动和管理多容器环境。
  3. 安装与环境准备
    • 安装 Docker 和 Docker Compose。
    • 检查版本:docker-compose --version

二、Docker Compose 的基本概念

  1. 核心组件
    • 服务 (Services):构成应用的各个容器。
    • 网络 (Networks):服务之间的通信方式。
    • 卷 (Volumes):持久化存储。
  2. docker-compose.yml 文件结构
    • 版本声明:version: "3.9"
    • 服务配置:services
    • 网络配置:networks
    • 卷配置:volumes

三、Docker Compose 的基本使用

  1. 创建一个简单的 docker-compose.yml 文件

       示例:运行一个 Nginx 容器

version: "3.9"
services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
  1. 常用命令
    • 启动服务:docker-compose up
    • 后台启动:docker-compose up -d
    • 查看运行容器:docker-compose ps
    • 停止服务:docker-compose down

四、进阶配置

  1. 使用环境变量
version: "3.9"
services:
  web:
    image: nginx:${NGINX_VERSION}

使用 .env 文件设置环境变量:NGINX_VERSION=latest

2、定义多个服务

  • 示例:Web + 数据库组合(Nginx + MySQL)
version: "3.9"
services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example

五、Compose 网络与卷

  1. 网络的使用
    • 默认网络类型:bridge
    • 自定义网络:
networks:
  my-network:
    driver: bridge

服务绑定到网络:

services:
  web:
    networks:
      - my-network

2、卷的持久化存储

  • 定义卷:
volumes:
  data-volume:
  •   挂载卷:
services:
  db:
    image: mysql:5.7
    volumes:
      - data-volume:/var/lib/mysql

六、调试与排错

  1. 查看日志:docker-compose logs
  2. 查看特定服务日志:docker-compose logs service_name
  3. 重启服务:docker-compose restart
  4. 清理无用资源:docker-compose down --volumes

七、实际案例:复杂应用部署

  1. LAMP 堆栈 (Linux, Apache, MySQL, PHP)
version: "3.9"
services:
  web:
    image: php:7.4-apache
    ports:
      - "8080:80"
    volumes:
      - ./code:/var/www/html
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
  1. 使用 Traefik 作为反向代理
    • 配置示例。

八、CI/CD 中的 Docker Compose

  1. 在 GitHub Actions 中使用 Docker Compose。
  2. 集成 Jenkins、GitLab CI 等工具。

九、高级技巧

  1. 使用 extends 复用配置。
  2. 与 Swarm 模式结合,扩展为分布式集群。

十、优化与性能调优

  1. 减少构建时间:使用多阶段构建。
  2. 合理配置资源限制:
deploy:
  resources:
    limits:
      cpus: "0.5"
      memory: "512M"


http://www.kler.cn/a/446601.html

相关文章:

  • python rabbitmq实现简单/持久/广播/组播/topic/rpc消息异步发送可配置Django
  • ChromeOS 131 版本更新
  • 苹果手机怎么清理空间:拯救你的拥挤手机
  • 【前端】vue数组去重的3种方法
  • Go vendor
  • 【返璞归真】score检验:似然比的得分检验(Likelihood Ratio Score Test)
  • Yolov11学习笔记
  • 使用Redis提升PHP应用的性能
  • SpringBoot02
  • Netdevops入门基础学习03
  • Leaflet的zoom层级-天地图层级之间的关系
  • Micropython RPI-PICO 随记-DS3231和RTC
  • POI-TL插件开发-表格分组插件
  • HTML 面试题全解析
  • Intellij配置scala运行环境
  • 故障诊断 | 一个小创新:特征提取+KAN分类
  • OpenAI o3 “震撼” 发布后回归技术本身的审视与进一步思考
  • Hive其四,Hive的数据导出,案例展示,表类型介绍
  • 3D开发工具HOOPS助力造船业加速设计与数字化转型
  • 告别Zoo of Factor:净化因子分析中的数据挖掘与p值操纵
  • Vue.js前端框架教程2:Vue路由和状态管理库Pinia
  • 开启新征程——QML
  • MvMRL:一种用于分子性质预测的多视图分子表示学习方法
  • Vue3自定义事件
  • 架构演进之路
  • 学习“Kotlin编程指南”笔记