1. 程式人生 > 其它 >docker ------ compose設定容器使用GPU

docker ------ compose設定容器使用GPU

gpu使用準備

在基於docker-compose使用GPU之前,你的docker必須要能夠使用--gpus引數指定裝置基於run命令啟動!
如果你遇到docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].可以自行跳轉解決

docker-compose.yaml檔案編寫

docker-compose.yaml檔案我們注意有versionservicesnetworks三個關鍵字,version用於指定程式碼編寫使用的版本規則;services用於配置服務;networks

用於配置網路。
下面我列出一個測試檔案:

version: "3.8"
services:
    pdf2img:
        image: "xxxx:xxxxx"
        user: "root"
        restart: "on-failure"
        expose:
          - "22"
          - "51002-51003"
        ports:
          - "51001:22"
          - "51002-51003:51002-51003"
        shm_size: "4g"
        networks:
          - "ana"
        container_name: "literature_pdf2img"
        tty: "true"
    classfig:
        image: "xxxxx:xxxxx"
        user: "root"
        restart: "on-failure"
        expose:
          - "22"
          - "51009-51020"
        ports:
          - "51008:22"
          - "51009-51020:51009-51020"
        shm_size: "8g"
        volumes:
          - "/data/elfin/utils/detectron2-master:/home/appuser/detectron2-master"
        environment:
          - "NVIDIA_VISIBLE_DEVICES=all"
        deploy:
            resources:
                reservations:
                    devices:
                      - driver: "nvidia"
                        count: "all"
                        capabilities: ["gpu"]
        networks:
          - "ana"
        container_name: "literature_classfig"
        tty: "true"
networks:
    ana:
        driver: bridge

注:上面的程式碼只是測試,很多地方需要優化,不是一個非常好的範本!其中,image用於指定映象。

注意上面實現了容器掛載、gpus使用、自定義網路、埠對映。我感覺GPU的配置是最難的,很多時候老是會犯一些小錯誤,導致啟動後應用無法開啟。下面是關於容器的GPU依賴配置:

deploy:
    resources:
        reservations:
            devices:
                - driver: "nvidia"
                  count: "all"
                  capabilities: ["gpu"]

這裡的capabilities是必須要指定的,而且count、driver、capabilities這是一組,不能每個加"-",不然會報錯。關於GPU的其他配置可以參考官方文件 https://docs.docker.com/compose/gpu-support/。

追加:下面是不錯的部落格,可以參考:

清澈的愛,只為中國