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
相关推荐
zzzsde2 小时前
【Linux】进程(6):程序地址空间
linux·运维·服务器
慵懒的猫mi2 小时前
deepin UOS AI 助手接入钉钉(DingTalk)配置指南
linux·数据库·人工智能·ai·钉钉·deepin
returnthem2 小时前
Ubuntu 22.04 + XFCE4 + 非 Snap 版 Firefox + VNC/noVNC 部署全步骤
linux·ubuntu·firefox
顶点多余2 小时前
Linux中基础IO知识全解
linux·服务器·算法
等风来不如迎风去2 小时前
【linux】tar [选项] 归档文件名 要打包的文件/目录..
linux·运维·elasticsearch
一殊酒2 小时前
【Docker】实战用例:前后端分离项目多容器Docker化设计
运维·docker·容器
yuuki2332332 小时前
【Linux】Linux基本指令 & 权限全解析
java·linux·服务器
邓草2 小时前
Ubuntu修改docker数据目录的方法
ubuntu·docker·eureka
Anthony_CH2 小时前
window系统无虚拟化安装Docker的方式
docker·容器·eureka