docker ------ compose設定容器使用GPU
阿新 • • 發佈:2021-11-03
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檔案我們注意有version
、services
、networks
三個關鍵字,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/。
追加:下面是不錯的部落格,可以參考:
清澈的愛,只為中國