docker-compose 模板

version: "3"

services:
  # 服务名
  triton-server-20.09:
    # 镜像标签
    image: nvcr.io/nvidia/tritonserver:20.09-py3
    # 重启策略
    restart: always
    # 网络
    # network_mode: "bridge"
    networks:
      front-tier:
        ipv4_address: 172.16.238.10
        ipv6_address: 2001:3984:3989::10
    # 容器名称
    container_name: triton-server-20.09
    # 主机名
    #   hostname: "leinao_devel"
    # env_file:
    #   - .env/xq_cross_border
    working_dir: /workspace
    # 容器的标准输入保持打开。相当于 docker run 的 -i
    # stdin_open: true
    # 分配一个虚拟终端并绑定到容器的标准输入上。相当于 docker run 的 -t
    # tty: true
    # 共享内存大小
    shm_size: 1gb
    # 限制容器使用的系统资源
    ulimits:
      # 堆栈的最大值
      stack: 67108864
    # 获取主机root权限
    privileged: true
    # 容器中添加的功能
    cap_add:
      - SYS_PTRACE
    security_opt:
      - seccomp:unconfined
      - apparmor:unconfined
    ports:
      - "8000:8000"
      - "8001:8001"
      - "8002:8002"
    environment:
    #   - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
    volumes:
        - /home/zkln/workspace/triton-r20.09/model_repository:/workspace/model_repository
    command:
      - tritonserver
      - --model-repository=/workspace/model_repository
      # - /bin/bash
    # docker-compose > 1.28.0
    deploy:
      resources:
        reservations:
          devices:
            - capabilities: [gpu]
              driver: nvidia
              device_ids: ["1"]

networks:
  front-tier:
    ipam:
      driver: default
      config:
        - subnet: "172.16.238.0/24"
        - subnet: "2001:3984:3989::/64"

restart

容器重启策略。

shm_size

容器允许的共享内存(Linux上的/dev/shm分区)的大小。单位b(bytes),k or kb(kilo bytes),m or mb(mega bytes),g or gb(giga bytes)。

privileged

出于安全考虑,docker容器中默认的root用户只是相当于主机上的一个普通用户权限,不允许访问主机上的任何设备。使用该参数让容器获取主机root权限,允许容器访问连接到主机的所有设备(位于/dev文件夹下)。

cap_add

为容器添加指定功能。

security_opt

覆盖容器的默认标签方案。

Table of Contents