You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible部署GPU Docker容器遇gpus参数不支持,求解决方案及Toolkit集成

问题与解决方案

问题背景

想要编写Ansible Playbook实现以下Docker命令的功能:

docker run --rm --gpus all -d -p 9400:9400 --name dcgm-exporter nvidia/dcgm-exporter

尝试的Playbook配置如下:

- name: Run DCGM Exporter Container
  community.docker.docker_container:
    name: dcgm-exporter
    image: nvidia/dcgm-exporter
    restart_policy: unless-stopped
    gpus: all
    published_ports:
      - "9400:9400"
    state: started
    detach: yes

执行后报错:

Unsupported parameters for (community.docker.docker_container) module: gpus.

解决方案

1. 解决gpus参数不支持的问题

该错误是因为使用的community.docker.docker_container模块版本过低,3.0.0及以上版本才引入了gpus参数,可通过两种方式处理:

方式一:升级community.docker集合

在控制节点执行命令升级集合,或在Playbook中添加升级任务:

ansible-galaxy collection install community.docker --upgrade

升级后,原有Playbook的gpus: all参数即可正常生效。

方式二:不升级模块,用runtime参数替代

若无法升级模块,可指定Docker runtime为nvidia(需目标主机已安装NVIDIA Docker Container Toolkit),配置如下:

- name: Run DCGM Exporter Container
  community.docker.docker_container:
    name: dcgm-exporter
    image: nvidia/dcgm-exporter
    restart_policy: unless-stopped
    runtime: nvidia
    published_ports:
      - "9400:9400"
    state: started
    detach: yes

runtime: nvidia会自动让容器获取所有GPU权限,等价于--gpus all的效果。

2. 集成NVIDIA Docker Container Toolkit

要让Docker容器访问GPU,目标主机必须先安装NVIDIA Docker Container Toolkit,以下是Ubuntu系统的Ansible安装任务:

- name: Install NVIDIA Docker Container Toolkit
  hosts: your_target_hosts
  tasks:
    - name: Import NVIDIA GPG key
      apt_key:
        url: https://nvidia.github.io/libnvidia-container/gpgkey
        state: present

    - name: Add NVIDIA Docker repository
      apt_repository:
        repo: "deb https://nvidia.github.io/libnvidia-container/stable/ubuntu$(lsb_release -rs) /"
        state: present
        filename: nvidia-container-toolkit.list

    - name: Install NVIDIA Container Toolkit package
      apt:
        name: nvidia-container-toolkit
        state: latest
        update_cache: yes

    - name: Restart Docker service to apply changes
      service:
        name: docker
        state: restarted

(如果是CentOS/RHEL系统,需替换为yum/dnf相关模块及对应仓库地址)

安装完成后,Docker即可识别nvidia runtime,配合上述Playbook配置就能让容器正常访问GPU。

内容的提问来源于stack exchange,提问作者Toni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:19:54