docker compose的安装和使用

ops/2024/11/28 4:26:33/
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.ppmy.cn/ops/137254.html

相关文章

【设计模式】【结构型模式(Structural Patterns)】之桥接模式(Bridge Pattern

1. 设计模式原理说明 桥接模式&#xff08;Bridge Pattern&#xff09; 是一种结构型设计模式&#xff0c;用于将抽象部分与实现部分分离&#xff0c;使它们可以独立变化。这种模式有助于解决因实现细节的变化而导致的代码膨胀问题。桥接模式的核心思想是通过组合而不是继承来…

ArcGIS 10.2软件安装包下载及安装教程!

今日资源&#xff1a;ArcGIS 适用系统&#xff1a;WINDOWS 软件介绍&#xff1a;ArcGIS是一款专业的电子地图信息编辑和开发软件&#xff0c;提供一种快速并且使用简单的方式浏览地理信息&#xff0c;无论是2D还是3D的信息。软件内置多种编辑工具&#xff0c;可以轻松的完成地…

上天入地 灵途科技光电技术赋能空间感知

近来&#xff0c;人工智能技术频频亮相各大马拉松赛事&#xff0c;成为引人注目的科技亮点。 11月3日&#xff0c;杭州马拉松首次启用了机器狗作为配速员&#xff0c;以稳定的节奏为选手提供科学的跑步节奏。 11月11日&#xff0c;亦庄半程马拉松的终点处&#xff0c;人形机器…

微信小程序:实现定时拍照与自动上传功能攻略——静音版

在之前的文章中&#xff0c;我介绍过可以用ctx.takePhoto来实现定时拍照&#xff0c;但是在实际使用过程中&#xff0c;会有快门声&#xff0c;影响用户体验感&#xff0c;本文中&#xff0c;我们将介绍如何在微信小程序中实现静音定时拍照功能&#xff0c;并将拍摄的照片上传到…

Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master,怎么办?

大家好&#xff0c;我是锋哥。今天分享关于【Elasticsearch中的节点&#xff08;比如共20个&#xff09;&#xff0c;其中的10个选了一个master&#xff0c;另外10个选了另一个master&#xff0c;怎么办&#xff1f;】面试题。希望对大家有帮助&#xff1b; Elasticsearch中的节…

基于Java Springboot点餐系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据…

阿里Qwen系列开源模型介绍

模型种类丰富 Qwen2&#xff1a;包含Qwen2-0.5b、Qwen2-1.5b、Qwen2-7b、Qwen2-57b-a14b以及Qwen2-72b等五种规模的预训练和指令微调模型&#xff0c;其在多语言处理、长文本处理、代码生成、数学和逻辑推理等能力上&#xff0c;在mmlu、gpqa、humaneval等国际测评中得到了验证…

NLP 1、人工智能与NLP简介

人人都不看好你&#xff0c;可偏偏你最争气 —— 24.11.26 一、AI和NLP的基本介绍 1.人工智能发展流程 弱人工智能 ——> 强人工智能 ——> 超人工智能 ① 弱人工智能 人工智能算法只能在限定领域解决特定的问题 eg&#xff1a;特定场景下的文本分类、垂直领域下的对…