0 背景
有時候,客戶是行政或者事業(yè)單位,對數(shù)據(jù)基礎(chǔ)設(shè)施的安全性極高,導(dǎo)致必須被駐派到現(xiàn)場部署,而由于現(xiàn)場沒有任何外網(wǎng),下載任何東西只能靠自己的流量,或者前一天下載好來,一種比較合適的做法是將應(yīng)用打包成一個docker,然后帶過去現(xiàn)場,此教程將一步一步教你如何離線安裝docker,并且如何一步一步安裝你想要的相關(guān)應(yīng)用。
docker的作用:免去了部署應(yīng)用相關(guān)環(huán)境的困擾,并且可以部署多個應(yīng)用互不影響,在一臺機器上加快部署多個應(yīng)用。
1 確定機器型號
你需要讓現(xiàn)場人員運行下面這個命令:
cat /etc/os-release
根據(jù)上圖可以確定機器的架構(gòu)為Centos linux7,為arm指令集架構(gòu)。
2 下載docker包
- 先去這里選擇屬于你的機器類型:鏈接: 鏡像下載
根據(jù)上圖,我選擇的是: - 為了實現(xiàn)在這臺機器上安裝docker這個目標,我們必須在這個界面上下載以下組件,注意版本號一定要一致:
3 安裝到docker
- 想辦法將文件傳輸?shù)皆摍C器:如使用MobaXterm學(xué)習(xí)版、U盤拷貝等方法,具體方法步驟自行百度。
- 下面是我將我的所有安裝文件,放到該目錄下
- 然后在終端輸入
cd /home/hhl/docker安裝文件/
- 繼續(xù)輸入:
sudo yum install ./*
- 等待安裝完畢即可。
4 啟動docker
- 啟動docker服務(wù):
systemctl start docker
- 設(shè)置開機自動啟動:
systemctl enable docker
- 測試:
docker version
,必須出現(xiàn)如下客戶端和服務(wù)器的版本信息才算安裝成功:
5 離線安裝應(yīng)用
這里以一個jupyter notebook環(huán)境安裝為例,展示一下離線安裝應(yīng)用的流程。具體如何操作需要根據(jù)你自己需要的應(yīng)用靈活貫通!
-
當你在自己公司有網(wǎng)絡(luò)的時候,使用vm16安裝一臺虛擬機,需要和你在現(xiàn)場的機器型號一致。
-
然后安裝好docker,直接輸入
sudo yum install docker-ce
可以實現(xiàn)自動聯(lián)網(wǎng)安裝,然后按照上一步“4 啟動docker”驗證即可。 -
然后輸入
sudo docker search jupyter
,獲取下圖的這個下載量最高的鏡像名字“jupyter/scipy-notebook” -
輸入
sudo docker pull jupyter/scipy-notebook
,拉取這個鏡像。等待拉取完畢,然后使用sudo docker images
,可以發(fā)現(xiàn)已經(jīng)存在了這個鏡像: -
輸入
docker run -it -p 8888:8888 -v 宿主機某路徑:容器中路徑 容器id
,運行jupyter notebook進行測試。注意:此處的只有“宿主機某路徑”需要你自己自定義——輸入你虛擬機上面的某個路徑,你使用notebook編程時候需要用到什么數(shù)據(jù)文件也要放到里面去,這樣你用notebook的時候才能使用;容器中的路徑取決于鏡像說明;容器id上圖有,自己填上去即可。例如本jupyter notebook:docker run -it -p 8888:8888 -v /home/notebook:/home/jovyan bcf091d6ab66
-
按界面上面顯示的url即可打開notebook進行編程,可以將url中127.0.0.1換成你虛擬機的ip地址(可通過
ip addr
查看)進行遠程控制。 -
特別注意!??!,如果你這里需要安裝python第三方庫,你需要把你從python庫官網(wǎng)下載到的相關(guān)依賴包全部放入宿主機某路徑,然后打開notebook進行手動pip安裝(輸入!pip install redis-4.5.5-py3-none-any.whl即可),如下圖所示,這是我用到的所有第三方庫:
-
如果你不知道用什么第三方庫版本,那就直接在公司可聯(lián)網(wǎng)的虛擬機上下載安裝一遍就知道去哪下載了,上面會顯示下載的url,比如下面我為了安裝hanlp這個第三方庫,就需要安裝十幾個依賴包,這些包包庫庫都需要通過這些url下載后,再復(fù)制到到你的宿主機某路徑上面去。
-
接下面我需要對這個notebook進行打包,使用命令
docker save -o jupyter_scipy_notebook.tar jupyter/scipy-notebook
。格式為:docker save -o <image_file.tar> <image_name>
這里的導(dǎo)出壓縮包名字可以自己定義,鏡像名字就是上圖中的第一個字段值。 -
這個壓縮包可能會比較大,將它移動到你的網(wǎng)盤或者U盤(宿主機某路徑下的所有數(shù)據(jù)文件也要拷貝到現(xiàn)場機器中去),然后復(fù)制到現(xiàn)場的機器中,在現(xiàn)場無法聯(lián)網(wǎng)的機器中使用命令
docker load -i <image_file.tar>
將鏡像載入,本例中使用docker load -i jupyter_scipy_notebook.tar
。 -
最后同樣使用命令
docker run -it -p 8888:8888 -v /home/notebook:/home/jovyan bcf091d6ab66
進行測試運行。 -
使用url進入notebook之后,打開終端,然后進去使用
pip install whl文件所在的文件夾
,或者不打開終端模式,直接在notebook上面輸入!pip install whl文件所在的文件夾
,也行。例如在下圖中,進入download目錄后,輸入!pip install ./*
就可以安裝該目錄下的所有的python依賴。文章來源:http://www.zghlxwxcb.cn/news/detail-687274.html -
至此,你可以愉快地在你無法聯(lián)網(wǎng)的現(xiàn)場機器上進行notebook編程啦!你需要在離線docker下使用其他應(yīng)用的安裝流程也是類似的。文章來源地址http://www.zghlxwxcb.cn/news/detail-687274.html
6 總結(jié)
- 整個部署的過程,關(guān)鍵其實在于現(xiàn)場機器版本的確定和所有依賴項的確定,其他方面都很方便,主要依賴于docker良好的封裝性。
- 但是現(xiàn)場的離線環(huán)境和自己公司的環(huán)境還是會有極大的不同,這個我覺得還是要去現(xiàn)場解決效率更高,所以準備好足夠的數(shù)據(jù)流量吧!
到了這里,關(guān)于離線裝docker和相關(guān)應(yīng)用保姆級教程——以安裝docker-jupyter/notebook為例的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!