2016-12-27 30 views
2

docker-compose.yml文件:采用NVIDIA-泊坞窗,撰写推出的容器,但很快退出

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推出的容器后,但很快退出。

但是,当我通过nvidia-docker的方式启动容器时,它运行良好。

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

回答

2

您不必使用nvidia-docker-compose。 通过正确配置nvdia-docker插件,您可以使用docker-compose!

经由nvidia docker git repo: (可以确认它为我的作品)

第1步:

图了NVIDIA驱动程序版本(它很重要)。 运行:

nvidia-smi 

输出:

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

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

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

步骤2:

创建使用nvidia-docker插件的码头卷必须在撰写之外完成,因为撰写会在卷名创建时对其进行压缩。

docker volume create --name=nvidia_driver_367.57 -d nvidia-docker 

步骤3

在泊坞窗,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 
+0

加上'TTY:TRUE'解决了这个问题。 –

+0

@oneklc - 我知道这不是现在...但也许你可以帮助我两个...试图使用你写的方法,但我想我错过了什么?这是完整的yml文件吗? – boaz

+1

@boaz这是我使用的完整的yml文件。这里关键的是创建外部码头卷。注意它的docker-compose版本2,所以你需要一个兼容版本的docker-compose。如果不清楚的话,需要安装Nvidia-docker。根据os的不同,这些设备可能会有不同的命名(我的测试是在centos 7和Ubuntu 14.04上进行的)。此外,我可以验证这不适用于码头群,我没有运气远程启动GPU服务与此设置(以及他们开始,但没有工作)。 – oneklc