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
相关推荐
tntxia13 小时前
linux curl命令详解_curl详解
linux
扛枪的书生15 小时前
Linux 网络管理器用法速查
linux
顺风尿一寸18 小时前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
lichenyang4531 天前
Docker 学习笔记(五):Docker Compose,用一个 YAML 启动前端、后端和 MongoDB
docker
lichenyang4531 天前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang4531 天前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang4531 天前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
XIAOHEZIcode1 天前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
唐青枫1 天前
别再只会用 cron:Linux systemd Timer 定时任务实战详解
linux
用户3074596982072 天前
Redis 延时队列详解
redis