docker: Error response from daemon: OCI runtime create failed

docker: Error response from daemon: OCI runtime create failed

  • 前言
  • 錯誤訊息
  • 發生原因
  • 參考連結

前言

這個錯誤是筆者在使用以下指令:

NV_GPU=0,1 nvidia-docker run --name tensorflow -td -p 8888:8888 -p 6006:6006 keineahnung2345/tensorflow-opencv:test2

時發生的。

註:keineahnung2345/tensorflow-opencv:test2是TF1.9版+Keras2.2.0+OpenCV3.4.1版的鏡像。

錯誤訊息

docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused “process_linux.go:402: container init caused “process_linux.go:385: running prestart hook 1 caused \“error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig --device=0,1 --compute --utility --require=cuda>=9.0 --pid=1590 /var/lib/docker/overlay/59fd505d308da926ed463e79cf3e6b857c2e70911da40985c5673231cc934741/merged]\\nnvidia-container-cli: requirement error: unsatisfied condition: cuda >= 9.0\\n\”””: unknown.

發生原因

錯誤訊息中提到cuda>=9.0,去TensorFlow - GPU support查詢,
發現果然是TensorFlow 1.9要求CUDA版本需高於9.0。

接著查詢cuda與nvidia driver相容性的表格,
發現CUDA 9.0需要的nvidia driver版本必須大於等於384版。

查詢一下機器上的nvidia driver版本:

nvidia-smi

結果顯示為375.26版,低於要求的384版。

這代表我們必須要重裝nvidia driver了,安裝教程詳見:(多圖)CentOS下安裝NVIDIA driver的超詳細教程。

安裝完成後再次使用nvidia-docker run的指令可能會出現以下錯誤:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

這時可以參考Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?錯誤及解決方式。

使用以下指令後問題即可順利解決!

systemctl start docker

參考連結

(多圖)CentOS下安裝NVIDIA driver的超詳細教程
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?錯誤及解決方式
TensorFlow - GPU support
What is the correct version of CUDA for my nvidia driver?
CUDA compute capability requirements

你可能感兴趣的:(docker,深度學習)