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
相关推荐
爱吃香菜的初学者1 小时前
十四.Linux——消息队列
linux·运维·开发语言
Lvan的前端笔记7 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
Apipi*8 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
天启HTTP9 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
禾小西10 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
广州浮点FLOATLIC11 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
BLUcoding11 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
AIgorithmGEEK11 小时前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
Nil20811 小时前
leetcode 139单词拆分
linux·运维·服务器
Starry-sky(jing)11 小时前
BUG: unable to handle kernel paging request 完整排查:dmesg 四要素与三路定罪
linux·运维·服务器·内核·排障