1. 程式人生 > >完全離線安裝docker,cuda,nvidia-docker

完全離線安裝docker,cuda,nvidia-docker

系統是剛裝好的ubuntu server 16.04.4 顯示卡是gtx1080ti,注意,如果不是16.04.4的版本,有可能會出現pcie的報錯

首先要安裝cuda,首先,聯網情況下在一模一樣的剛裝的系統中安裝cuda,安裝好後,這時候會裝很多的依賴庫,注意,所有的依賴庫都會儲存在/var/cache/apt/archives/ 下面,這時候,需要對這些依賴庫作處理:

$sudo mkdir /var/debs
$sudo cp /var/cache/apt/archives/* /var/debs/
$sudo touch /var/debs/Packages.gz
$sudo chmod -R 777 /var/debs/
$sudo dpkg-scanpackages debs  /dev/null  | gzip > debs/Packages.gz

這樣,就得到了Packages.gz這個檔案,這個檔案就記錄著這些庫的依賴關係

然後,將整個/var/debs/裡的所有檔案複製到離線伺服器中隨便一個新建目錄(假設是/home/yourname/debs/,注意,這裡資料夾的名字也必須是debs)

接著都是在離線伺服器上的操作:

$sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
$sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
$sudo gedit /etc/apt/sources.list

將sources.list 原來的內容都註釋掉。在最後新增
deb file:/var debs/
注意上面的 /var 和 debs/ 之間的空格,以及 “/”。不要寫錯/var/debs/路徑了。

$sudo apt-get update
$sudo apt-get install cuda

這樣,cuda就裝好了,接下來安裝docker和nvidia-docker:

下載一些docker_ce的依賴:

$mkdir docker_depends

$cd docker_depends

$apt-get download init-system-helpers_1.29ubuntu4_all.deb iptables_1.6.0-2ubuntu3_amd64.deb \

libc6_2.23-0ubuntu10_amd64.deb libdevmapper1.02.1_2%3a1.02.110-1ubuntu10_amd64.deb \

libltdl7_2.4.6-0.1_amd64.deb libseccomp2_2.3.1-2.1ubuntu2~16.04.1_amd64.deb \

libsystemd0_229-4ubuntu21.4_amd64.deb lsb-base_9.20160110ubuntu0.2_all.deb

這幾個包是沒有安裝順序的,直接dpkg 裝就好了

$apt-get download docker-ce_18.06.1~ce~3-0~ubuntu_amd64.deb

不知道這一步行不行,總之就是要找到這個版本的docker安裝包,其它版本不保證沒有新的依賴或者依賴版本不對

順便下載nvidia-docker的依賴:

$apt-get download libnvidia-container1_1.0.0-1_amd64.deb libnvidia-container-tools_1.0.0-1_amd64.deb\

nvidia-container-runtime_2.0.0+docker18.06.1-1_amd64.deb nvidia-container-runtime-hook_1.4.0-1_amd64.deb\

nvidia-docker2_2.0.3+docker18.06.1-1_all.deb

下載完後,將所有檔案複製到離線伺服器中,先安裝docker-ce,然後nvidia-docker的依賴包順序是:

libnvidia-container1_1.0.0-1_amd64.deb libnvidia-container-tools_1.0.0-1_amd64.deb nvidia-container-runtime-hook_1.4.0-1_amd64.deb nvidia-container-runtime_2.0.0+docker18.06.1-1_amd64.deb nvidia-docker2_2.0.3+docker18.06.1-1_all.deb

的操作來執行nvidia-docker就好了