最近需要在政務雲系統中部署深度學習環境,其使用麒麟操作系統並與互聯網相互隔離,無法使用常規的指令行方式進行安裝。參考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命令加載這個鏡像。就可以在麒麟操作系統中運行深度學習程序了。