Linux之docker-compose使用(redis、nginx、tdengine、java应用)

docker-compose.yml :

bash 复制代码
version: '3.8'

services:
  redis-isolated:
    image: redis:7.2
    container_name: isolated-redis
    restart: unless-stopped     # 除非手动停止,否则总是重启
    ports:
      - "6380:6379"
    volumes:
      - /usr/local/docker/redis/data:/redis/data
      - /usr/local/docker/redis/conf:/redis/conf
      - /usr/local/docker/redis/log:/redis/log
    command: >
      redis-server /redis/conf/redis.conf
      --requirepass 1908@123456
      --logfile /redis/log/redis-server.log
    healthcheck:
      test: ["CMD", "redis-cli", "-a", "1908@123456", "ping"]
      interval: 10s
      timeout: 5s
      retries: 3
    networks:
      - regongyuan-network

  nginx-isolated:
    image: nginx:1.23.2
    container_name: isolated-nginx
    restart: unless-stopped
    ports:
      - "8081:80"
      - "3000:3000"
      - "3800:3800"  
      - "5173:5173" 
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro
      - /usr/local/docker/nginx/conf.d:/etc/nginx/conf.d:ro
      - /usr/local/docker/nginx/html:/usr/share/nginx/html:rw 
      - /usr/local/docker/nginx/log:/var/log/nginx
    depends_on:
      - redis-isolated
      - java-app
      - xxljob-app
      - workflow-app
    networks:
      - regongyuan-network

  tdengine-isolated:
    image: tdengine/tdengine:2.6.0.34           
    container_name: isolated-tdengine
    restart: unless-stopped
    ports:
      - "16030:6030"
      - "16031:6031"
      - "16032:6032"
      - "16041:6041"
      - "16042:6042"
      - "16040:6040"
    volumes:
      - /usr/local/docker/tdengine/data:/var/lib/taos
      - /usr/local/docker/tdengine/log:/var/log/taos
      - /usr/local/docker/tdengine/conf/taos.cfg:/etc/taos/taos.cfg:ro
    ulimits:
      nofile:
        soft: 65535
        hard: 65535
    healthcheck:
      test: ["CMD", "taos", "-s", "show dnodes;"]
      interval: 30s
      timeout: 10s
      retries: 3
    networks:
      - regongyuan-network

  java-app:
    build:
      context: .
      dockerfile: Dockerfile.rgyadmin
    container_name: rgyadmin
    restart: unless-stopped
    ports:
      - "30000:30000"
    volumes:
      - /usr/local/docker/java-app/resources:/data/resources
      - /usr/local/docker/java-app/logs:/data/logs
    depends_on:
      redis-isolated:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:30000/actuator/health", "||", "exit", "1"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s
    networks:
      - regongyuan-network

  xxljob-app:
    build:
      context: .
      dockerfile: Dockerfile.xxljob
    container_name: rgyxxljob
    restart: unless-stopped
    ports:
      - "30020:30020"
    volumes:
      - /usr/local/docker/xxljob/logs:/data/logs
    depends_on:
      redis-isolated:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:30020/actuator/health", "||", "exit", "1"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s
    networks:
      - regongyuan-network

  workflow-app:
    build:
      context: .
      dockerfile: Dockerfile.workflow
    container_name: rgyworkflow
    restart: unless-stopped
    ports:
      - "31000:31000"
    volumes:
      - /usr/local/docker/workflow/logs:/data/logs
    depends_on:
      redis-isolated:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:31000/actuator/health", "||", "exit", "1"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s
    networks:
      - regongyuan-network

networks:
  regongyuan-network:
    name: regongyuan-network
    driver: bridge

1.在当前目录下启动所有服务:

bash 复制代码
docker-compose up -d

指定docker-compose.yml启动

bash 复制代码
docker compose -f docker-compose.yml up -d

2. 构建并启动所有服务

bash 复制代码
docker-compose up -d --build

3. 查看服务状态

bash 复制代码
docker-compose ps

4. 查看所有服务日志

bash 复制代码
docker-compose logs -f

5. 查看特定服务日志

bash 复制代码
docker-compose logs -f java-app

docker-compose logs -f xxljob-app

6.在 docker-compose.yml 文件中单独 启动 nginx-isolated服务

bash 复制代码
docker compose -f docker-compose.yml up -d nginx-isolated  

7.在 docker-compose.yml 文件中单独 停止 nginx-isolated服务

bash 复制代码
docker compose -f docker-compose.yml down nginx-isolated
相关推荐
AOwhisky15 小时前
Kubernetes 学习笔记:集群管理、命名空间与 Pod 基础
linux·运维·笔记·学习·云原生·kubernetes
小龙在慢慢变强..16 小时前
目录结构(FHS 标准)
linux·运维·服务器
2035去旅行16 小时前
嵌入式开发,如何选择C标准库
linux·arm开发
刘延林.16 小时前
win11系统下通过 WSL2 安装Ubuntu 24.04 使用RTX 5080 GPU
linux·运维·ubuntu
C Y D17 小时前
只启动wsl
docker
CodeOfCC17 小时前
Linux 嵌入式arm64安装openclaw
linux·运维·服务器
羑悻的小杀马特18 小时前
零成本搞定!异地访问 OpenClaw 最简方案:SSH 端口映射组网!
运维·服务器·人工智能·docker·自动化·ssh·openclaw
宵时待雨18 小时前
linux笔记归纳3:linux开发工具
linux·运维·笔记
magrich19 小时前
安装NoMachine并解决无外接显示器桌面黑屏
linux·运维·服务器
aLTttY19 小时前
Spring Boot + Redis 实现接口防抖与限流实战指南
spring boot·redis·junit