docker-compose.yml文件配置实例

version: "3.2" # 指定 compose 文件的版本

services: # 定义所有的 service 信息, services 下面的第一级别的 key 既是一个 service 的名称

  srv-auth:

    image: 192.168.179.56:5000/ccdc/srv-auth:develop-R20211220 # 指定 docker 镜像, 可以是远程仓库镜像、本地镜像

    ports:

      - "8902:8902" # 建立宿主机和容器之间的端口映射关系

    labels: # 使用 Docker 标签将元数据添加到容器, 与 Dockerfile 中的 LABELS 类似

      container_name: "srv-auth"

    deploy:

      mode:

        #global                # 每个集群节点都只有一个容器

        replicated             # 用户可以指定集群中容器的数量(默认)

      replicas: 1   # deploy 的 mode 为 replicated 时, 指定容器副本的数量

      resources:   # 资源限制

        limits:     # 设置容器的资源限制

          memory: 2g     # 设置该容器最多只能使用 2G 的内存空间

          cpus: '0.25'   # 设置该容器最多只能使用 25% 的 CPU

        reservations:    # 设置为容器预留的系统资源(随时可用)

          cpus: '0.1'   # 为该容器保留 10% 的 CPU

          memory: 1g     # 为该容器保留 1G 的内存空间

      placement:

        constraints:   #对可用节点作出限制

          [node.role == manager]  #在manager节点运行

      restart_policy:        # 定义容器重启策略, 用于代替 restart 参数

        condition:             # 定义容器重启策略(接受三个参数)

          #none                  # 不尝试重启

          #on-failure            # 只有当容器内部应用程序出现问题才会重启

          any                   # 无论如何都会尝试重启(默认)

        delay:                 # 尝试重启的间隔时间(默认为 0s)

        max_attempts:          # 尝试重启次数(默认一直尝试重启)

        window:                # 检查重启是否成功之前的等待时间(即如果容器启动了, 隔多少秒之后去检测容器是否正常, 默认 0s)

    environment:           # 设置环境变量, environment 的值可以覆盖 env_file 的值 (等同于 docker run --env 的作用)

      - SPRING_PROFILES_ACTIVE=docker

      - DATABASE_NETVIP_ADDRESS=192.168.179.57

      - DATABASE_NETVIP_PASSWORD=******

    entrypoint: # 覆盖容器的默认 entrypoint 指令 (等同于 docker run --entrypoint 的作用)

      [

        "java",

        "-Djava.security.egd=file:/dev/./urandom -Xms1g -Xmx2g -XX:+UseG1GC",

        "-jar",

        "/app.jar",

      ]

    volumes:       # 定义容器和宿主机的卷映射关系, 其和 networks 一样可以位于 services 键的二级键和 compose 顶级键, 如果需要跨服务间使用则在顶级键定义, 在 services 中引用

      - /var/lib/mysql                # 映射容器内的 /var/lib/mysql 到宿主机的一个随机目录中

      - /opt/data:/var/lib/mysql      # 映射容器内的 /var/lib/mysql 到宿主机的 /opt/data

      - ./cache:/tmp/cache            # 映射容器内的 /var/lib/mysql 到宿主机 compose 文件所在的位置

      - ~/configs:/etc/configs/:ro    # 映射容器宿主机的目录到容器中去, 权限只读

      - datavolume:/var/lib/mysql     # datavolume 为 volumes 顶级键定义的目录, 在此处直接调用

    networks:

      mynet:                          # 调用下面 networks 定义的 mynet 网络

      ipv4_address: 172.16.238.10     #指定ip  

networks: # 定义 networks 信息

  mynet:

      driver: overlay

      ipam:                    # 自定义 IPAM 配置. 这是一个具有多个属性的对象, 每个属性都是可选的

        driver: default                # IPAM 驱动程序, bridge 或者 default

        config:                # 配置项

          subnet: 172.16.238.0/24              # CIDR格式的子网,表示该网络的网段

      name : netvip_cluster_net                  # v3.5 以上版本, 为此网络设置名称

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值