Docker compose 使用nvidia docker compose启动容器,但很快退出

Docker compose 使用nvidia docker compose启动容器,但很快退出,docker-compose,Docker Compose,我的docker compose.yml文件: version: '2' services: zl: image: zl/caffe-torch-gpu:12.27 ports: - "8801:8888" - "6001:6008" devices: - /dev/nvidia0 volumes: - ~/dl-data:/root/dl-data nvidia docker compose up-d之后,容

我的
docker compose.yml
文件:

version: '2'
services:
  zl:
    image: zl/caffe-torch-gpu:12.27
    ports:
      - "8801:8888"
      - "6001:6008"
    devices:
      - /dev/nvidia0
    volumes:
      - ~/dl-data:/root/dl-data
nvidia docker compose up-d之后,容器启动,但很快退出

但当我以
nvidiadocker
的方式启动一个容器时,它运行得很好

nvidia-docker run -itd -p 6008:6006 -p 8808:8888 -v `pwd`:/root/dl-data --name zl_test 

您不必使用nvidia docker compose。 通过正确配置nvdia docker插件,您只需使用docker compose

通过: (可以确认它对我有效)

步骤1: 找出nvidia驱动程序版本(这很重要)。 运行:

输出:

+---------------------------------------------------------------+

NVIDIA-SMI 367.57驱动程序版本:367.57

|-------------------------------+--------+----------------------+

步骤2: 创建使用nvidia docker插件的docker卷必须在compose之外完成,因为如果compose创建该卷,它将损坏卷名

步骤3 在docker-compose.yml文件中:

version: '2'
    volumes:
      nvidia_driver_367.57: # same name as one created above
        external: true  #this will use the volume we created above

    services:
      cuda:
        command: nvidia-smi
        devices:  #this is required
        - /dev/nvidiactl
        - /dev/nvidia-uvm
        - /dev/nvidia0 #in general: /dev/nvidia# where # depends on which gpu card is wanted to be used
        image: nvidia/cuda
        volumes:
        - nvidia_driver_367.57:/usr/local/nvidia/:ro

@我知道这不是从现在开始。。。但也许你能帮我两个。。。试着用你写的方法但我想我遗漏了什么?这是完整的yml文件吗?@boaz这是我正在使用的完整的yml文件。这里的关键是创建外部docker卷。请注意它的docker compose版本2,因此您需要一个兼容的docker compose版本。如果不清楚的话,需要安装Nvidia docker。根据操作系统的不同,这些设备可能会有不同的名称(我的设备是在centos 7和ubuntu 14.04上测试的)。此外,我可以验证这在docker swarm上不起作用,我没有幸用这个设置远程启动GPU服务(它们启动了,但不起作用)。
docker volume create --name=nvidia_driver_367.57 -d nvidia-docker
version: '2'
    volumes:
      nvidia_driver_367.57: # same name as one created above
        external: true  #this will use the volume we created above

    services:
      cuda:
        command: nvidia-smi
        devices:  #this is required
        - /dev/nvidiactl
        - /dev/nvidia-uvm
        - /dev/nvidia0 #in general: /dev/nvidia# where # depends on which gpu card is wanted to be used
        image: nvidia/cuda
        volumes:
        - nvidia_driver_367.57:/usr/local/nvidia/:ro