最近需要在政務雲系統中部署深度學習環境,其使用麒麟作業系統並與網際網路相互隔離,無法使用常規的指令行方式進行安裝。參考docker官方文件並經過多次嘗試,使用離線安裝的方式完成了環境的部署。這裡做一下筆記分享經驗。

整個過程大概分為4步:

    ·作業系統版本資訊查詢

    ·docker官網下載安裝檔案

    ·離線安裝

    ·映象遷移及部署

一、作業系統版本查詢

麒麟系統在3.0版之後,不再使用FreeBSD核心作為基礎,開始使用Linux核心。這也就是說,不少Linux版本的軟體可以直接在麒麟系統上進行安裝。但Linux也有多種不同的版本,這裡就需要先確定所使用的麒麟作業系統版本對應哪個Linux OS。通常可以通過:uname -a   ||  lsb_release -a  ||  cat /proc/version  等指令進行查詢。

以我在政務雲專案中所使用的銀河麒麟4.0.X為例,使用 lsb_release -a 和 uname -a 指令僅能檢視到麒麟版本和對應的Linux核心版本,但在使用 cat /proc/version 指令時,可以看到輸出的內容中有 "Ubuntu1~16.04.9" 字樣,也就是說該麒麟版本與Ubuntu較為接近,可以使用.deb安裝包。

二、docker官網下載安裝檔案

根據docker官網文件( https://docs.docker.com/engine/install/ubuntu/#install-from-a-package )指示,需要在下載地址( https://download.docker.com/linux/ubuntu/dists/ )選擇正確的Ubuntu發行版本,我們剛查詢到的對應版本是Ubuntu16.04.9,也就是xenial版本

至於說Ubuntu對應版本號與版本名稱可以在 https://blog.csdn.net/songfulu/article/details/85310273 查到。

之後,根據官方文件指引,最終在 /ubuntu/dists/xenial/pool/stable/amd64/ 的路徑下,找到了docker各穩定版的離線安裝包。

需要特別注意的是,這裡的安裝包共有3類,即 containerd.io \ docker-ce-cli \ docker-ce 這3類安裝包之間存在著依賴關係,每一類安裝包都需要至少下載一個。

三、離線安裝

根據官方文件的說明,使用 dpkg -i 指令安裝即可。 但經過實踐摸索,這三類安裝包之間存在依賴關係,順序錯誤會導致安裝失敗

①首先要安裝容器類服務,使用 dpkg -i containerd.io_XXXXXX.deb 指令進行安裝。

②其次要安裝docker客戶端,cli 即為 client 的意思。使用 dpkg -i docker-ce-cli_XXXX.deb 指令進行安裝。

③最後再安裝docker服務端程式,使用 dpkg -i docker-ce_XXXX.deb 指令進行安裝。

這樣就能夠正確的建立依賴關係,完成docker的安裝。一般來講,安裝之後會自動啟動docker服務,若該服務未啟動,則使用 service docker start 或 systemctl start docker 指令將其開啟即可。

四、映象遷移及部署

docker環境配置成功,最後拷貝進來事先通過docker save命令打包好的映象壓縮包(tensorflow/tensorflow:2.2.3-gpu-py3),使用docker load命令載入這個映象。就可以在麒麟作業系統中執行深度學習程式了。