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

docker compose的安装和使用

1. Docker Compose 简介

Docker Compose 是一个工具,用于定义和运行多容器的 Docker 应用。通过编写一个 docker-compose.yml 文件,可以一次性启动所有容器,并且方便管理容器之间的依赖。

2. 安装 Docker Compose
前提条件

确保已安装 Docker,可以通过以下命令检查:

docker --version

 

安装步骤
  1. Linux 或 Mac 安装 下载 Compose 二进制文件到系统中:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

设置可执行权限:

sudo chmod +x /usr/local/bin/docker-compose 

验证安装,如果显示版本号则表明安装成功:

docker-compose --version

 Windows 安装

  • 如果已安装 Docker Desktop,Docker Compose 通常会随之安装。
  • 在命令行中输入 docker-compose --version 验证。
3. 使用 Docker Compose
3.1 创建 docker-compose.yml 文件

以下是一个典型的 Compose 文件示例,用于启动一个包含 Nginx 和 MySQL 的应用:

version: '3.9'
services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - ./web:/usr/share/nginx/html
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
    ports:
      - "3306:3306"
 

  • version: 定义 Compose 文件的版本。
  • services: 定义所有服务,每个服务会启动一个容器。
  • ports: 映射主机和容器的端口。
  • volumes: 映射主机与容器的数据卷。
3.2 启动服务

docker-compose.yml 文件所在目录运行以下命令,注意一定要在docker-compose.yml 文件所在目录执行:

docker-compose up

添加 -d 参数让服务在后台运行:

docker-compose up -d 

3.3 停止服务

docker-compose down

 4. 常用命令:

命令功能
docker-compose up启动所有服务。
docker-compose up -d后台运行所有服务。
docker-compose down停止并删除所有容器、网络和相关资源。
docker-compose ps查看当前运行的容器列表。
docker-compose logs查看所有服务的日志。
docker-compose logs -f实时查看日志。
docker-compose build根据 Dockerfile 构建服务镜像。
docker-compose start启动已停止的服务容器。
docker-compose stop停止服务容器,但保留容器数据。
docker-compose restart重启所有服务。
docker-compose exec <service> <cmd>在运行中的服务容器中执行命令。
docker-compose config验证 docker-compose.yml 文件的配置正确性。

 注意:docker-compose down命令会删除docker-compose.yml定义的容器,网络和相关资源。如果只想停止容器,保留容器数据需执行:docker-compose stop

5. 常见使用场景
场景 1:开发环境

使用 Docker Compose 启动包含多个服务的开发环境,例如前端、后端和数据库。示例:

version: '3.9'
services:
  frontend:
    build:
      context: ./frontend
    ports:
      - "3000:3000"
  backend:
    build:
      context: ./backend
    ports:
      - "5000:5000"
    depends_on:
      - database
  database:
    image: postgres:13
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
 

场景 2:日志监控

启动一个 Loki + Promtail + Grafana 的日志监控系统:

version: '3.9'
services:
  grafana:
    image: grafana/grafana
    ports:
      - "3000:3000"
  loki:
    image: grafana/loki
    ports:
      - "3100:3100"
  promtail:
    image: grafana/promtail
    volumes:
      - /var/log:/var/log

6. Debug 和优化建议
  1. 检查服务状态: 使用 docker-compose ps 查看服务是否正常启动。
  2. 检查日志: 如果服务异常,使用 docker-compose logs <service> 查看具体日志。
  3. 网络配置问题: 确保服务之间可以通过 service_name 通信。
  4. 版本兼容: 确保 Docker 和 Compose 的版本匹配。

 

 


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

相关文章:

  • 介绍一下atol(arr);(c基础)
  • R虚拟环境中安装ncdf4库包编译库问题
  • 【Python】深入理解Python的字符串处理与正则表达式:文本处理的核心技能
  • 用Java爬虫“搜刮”工厂数据:一场数据的寻宝之旅
  • AI 助力开发新篇章:云开发 Copilot 深度体验与技术解析
  • 【AI学习】Mamba学习(十八):S6的硬件感知设计
  • el-row el-col显示失效问题修复
  • CTF之密码学(栅栏加密)
  • IntelliJ+SpringBoot项目实战(十六)--在SpringBoot中整合SpringSecurity和JWT(下A)
  • Jenkins流水线 Allure JUnit5 自动化测试
  • vue3项目搭建-4-正式启动项目,git管理
  • 如何寻找适合的HTTP代理IP资源?
  • 13 —— 开发环境调错-source map
  • 本地部署 WireGuard 无需公网 IP 实现异地组网
  • Redis中如何使用lua脚本-即redis与lua的相互调用
  • coqui-ai TTS 初步使用
  • React的基本知识:事件监听器、Props和State的区分、改变state的方法、使用回调函数改变state、使用三元运算符改变state
  • 命令行版 postman 之 post 小工具
  • TDengine 签约深圳综合粒子,赋能粒子研究新突破
  • Spring Boot Web应用开发:安全
  • docker安装使用Elasticsearch,解决启动后无法访问9200问题
  • 基于Java Springboot智慧养老院管理系统
  • 生产环境中,nginx 最多可以代理多少台服务器,这个应该考虑哪些参数 ?怎么计算呢
  • Stable Diffusion初步见解(二)
  • Spring:AOP面向切面编程入门案例
  • 如何提升C/C++的编程能力