Docker compose 多个服务/组件部署案例

编程教程 > Docker Case (32) 2025-04-17 11:34:43

项目依赖说明

Docker compose 多个服务组件部署案例_图示-eb663973282c443bbebc8d1152aa83b0.png

Docker compose 示例

docker-compose.yml 配置示例

version: "3.8"

networks:
  demoRouter:

services:
  demo-mysql8:
    image: mysql:8.0.36
    container_name: demo-mysql8
    hostname: demo-mysql8
    restart: always
#    ports:
#      - 3306:3306
    networks:
      - demoRouter
    command: [
      '--character-set-server=utf8mb4',
      '--collation-server=utf8mb4_unicode_ci'
    ]
    environment:
      - MYSQL_ROOT_PASSWORD=Pas#001
    volumes:
      - ./data/mysql/init.sql:/docker-entrypoint-initdb.d/init.sql #初始化脚本
      - ./data/mysql/data:/var/lib/mysql
      - ./data/mysql/conf.d:/etc/mysql/conf.d
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
    deploy:
      resources:
        limits:
          memory: 512M
    healthcheck: #健康检查
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 5s
      retries: 5

  demo-redis6:
    image: redis6:1.0
    build:
      context: ./data/redis
      dockerfile: Dockerfile
    container_name: demo-redis6
    hostname: demo-redis6
    restart: always
#    ports:
#      - 6379:6379
    networks:
      - demoRouter
    volumes:
      - ./data/redis/redis.conf:/usr/local/etc/redis/redis.conf
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
    deploy:
      resources:
        limits:
          memory: 256M
  demo-website:
    image: openjdk:17
    container_name: demo-website
    hostname: demo-website
    restart: always
    networks:
      - demoRouter
    volumes:
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
      - ./data/website/demo-website.jar:/app.jar
      - ./data/website/data:/var/app/data/
    command: ["java","-Xms256M","-Xmx256M","-XX:HeapDumpPath=/var/app/data/jvm/","-Duser.timezone=GMT+8", "-jar", "/app.jar","--spring.profiles.active=prod"]
    deploy:
      resources:
        limits:
          memory: 512M
    depends_on:
      demo-mysql8:
          condition: service_healthy #必须在mysql8组件启动后健康检查通过后启动
    healthcheck:
      test: ["CMD","curl","-f","http://127.0.0.1:8080"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s
  demo-nginx:
    image: nginx:1.19.10
    container_name: demo-nginx
    restart: always
    volumes:
      - ./data/nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./data/nginx/conf.d:/etc/nginx/conf.d
      - ./data/nginx/html/:/usr/share/nginx/html
      - ./data/nginx/log:/var/log/nginx
    ports:
      - 80:80
      - 443:443
    networks:
      - demoRouter
    deploy:
      resources:
        limits:
          memory: 256M
    depends_on:
      demo-website:
        condition: service_healthy
    healthcheck:
      test: ["CMD","curl","-f","http://localhost"] #注意curl 检查的是http状态码,如果非200则错误
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s

文件结构参考

└─docker
    │  docker-compose.yml
    │
    └─data
        ├─mysql
        │  │  init.sql
        │  │
        │  └─conf.d
        │          my.ext.cnf
        │
        ├─nginx
        │  │  nginx.conf
        │  │
        │  ├─conf.d
        │  │  │  demo-website.conf
        │  │  │  default.conf
        │  │  │
        │  │  └─ssl
        │  │          demo.com.key
        │  │          demo.com_bundle.crt
        │  │
        │  ├─html
        │  └─log
        ├─redis
        │      Dockerfile
        │      redis.conf
        │
        └─website

配置文件内容参考

VIP资源,登录后查阅

此处内容需要开通会员后查阅(刷新)

登录/注册

 

以上文件均已测过。

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
项目依赖说明Docker compose 示例docker-compose.yml 配置示例version: "3.8"networks: demoRouter
案例需求配置示例version: "3.8"networks: demoRouter:services: demo-mysql8: image: mysql:8
docker-compose 报错:[root@VM_0_17_centos gateway]# docker-compose up Building gatewayServer unkno...
一. Docker-Compose 简介1. Docker-Compose 简介Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Docke...
docker与docker-compose配置文件版本对应关系Compose file version 3 reference  Compose file formatDocker Engine...
在执行多次docker-compose build 之后,我们通过命令`docker images`可以看到很多的REPOSITORY 为<none&gtl; 且tag 也是<non...
部署目录结构tree -a ././├── conf.d #nginx 自定义配置映射目录│ ├── default.conf #存放一些通用配置(可选)│ ├
Docker安装部署Redisdocker 安装部署Redis环境Linux系统dockerdocker-compose 相关文章:Ubuntu 在线安装 Docker-xqlee (blog....
docker 常用命令整理(持续更新)docker运行容器资源相关查看所有运行docker的资源消耗情况docker stats查看指定运行容器资源消耗情况do
Docker从容器复制文件到主机sudo docker cp 容器名称/容器id:容器文件/目录 主机目录示例:sudo docker cp nginx:/et
旧域名:https://hub.docker.com 新域名:https://hubgw.docker.com/
Docker简介Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可
Dockerfile配置FROM php:7.4-apache#开源版依赖库安装RUN docker-php-ext-install pdo RUN docker-php-ext-install...
环境准备docker swarm 集群环境NFS服务资源文件docker-mutil-stack.zip(访问密码: 9987)1.创建overlay网络网络名称:stackMutilNetwo...
Ubuntu 系统安装DockerUbuntu 在线安装 Docker-XQLEE'Blog (在线安装,需外网好)Ubuntu 安装Docker 国内适用-X