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
相关推荐
2401_8920709816 小时前
【Linux C++ 日志系统实战】LogFile 日志文件管理核心:滚动策略、线程安全与方法全解析
linux·c++·日志系统·日志滚动
雪可问春风16 小时前
docker环境部署
运维·docker·容器
lwx91485216 小时前
Linux-Shell算术运算
linux·运维·服务器
somi717 小时前
ARM-驱动-02-Linux 内核开发环境搭建与编译
linux·运维·arm开发
双份浓缩馥芮白17 小时前
【Docker】Linux 迁移 docker 目录(软链接)
linux·docker
M--Y17 小时前
Redis常用数据类型
数据结构·数据库·redis
黄昏晓x17 小时前
Linux ---- UDP和TCP
linux·tcp/ip·udp
路溪非溪17 小时前
Linux驱动开发中的常用接口总结(一)
linux·运维·驱动开发
此刻觐神17 小时前
IMX6ULL开发板学习-01(Linux文件目录和目录相关命令)
linux·服务器·学习
2401_8920709818 小时前
【Linux C++ 日志系统实战】高性能文件写入 AppendFile 核心方法解析
linux·c++·日志系统·文件写对象