Docker知识6:实战!将一个tensorflow项目制作成Docker image
提要:
這里完成一個(gè)完整的docker項(xiàng)目,并且將其推送到Docker-hub中。
docker知識(shí)5:在WSL2的ubuntu20.04環(huán)境安裝使用docker
第一步 登錄hub并建立倉(cāng)庫(kù)
如果docker-hub的注冊(cè)名稱(chēng)為china,建立倉(cāng)庫(kù)名稱(chēng)為china/tianjin,那么hub上將會(huì)有一個(gè)空的image,名稱(chēng)為china/tianjin.
在客戶(hù)端準(zhǔn)備:將一個(gè)container轉(zhuǎn)化成一個(gè)image,中心代碼:
docker commit? name-container? china/tianjin
注意:這里image名稱(chēng)必須與hub上一樣,才能推送到hub上去。
推送上面的image/tianjin到hub上去。
docker push?china/tianjin
登錄hub查看,將出現(xiàn)一個(gè)鏡像。
第二步 準(zhǔn)備一個(gè)完整項(xiàng)目在win10系統(tǒng)運(yùn)行
在win10下面,有開(kāi)發(fā)好的基于Mnist的KNN分類(lèi)項(xiàng)目。該項(xiàng)目存放在e盤(pán)(win10的)。
進(jìn)入wsl2的ubuntu,鍵入 cd /mnt/e && ls
huatec@LAPTOP-J5TGQHQH:~$? ?cd /mnt/e && ls
'$RECYCLE.BIN'? ?'System Volume Information' ? machine_learn
huatec@LAPTOP-J5TGQHQH:/mnt/e$?
可以看到? machine_learn,將其導(dǎo)入ubuntu:
sudo cp /mnt/e/machine_learn -r? /home/usr
查看倒入的效果:
cd? /home/usr && tree?machine_learn
結(jié)果是:
machine_learn
└── knn
? ? ├── KNN.py
? ? └── MNIST_data
? ? ? ? ├── t10k-images-idx3-ubyte.gz
? ? ? ? ├── t10k-labels-idx1-ubyte.gz
? ? ? ? ├── train-images-idx3-ubyte.gz
? ? ? ? └── train-labels-idx1-ubyte.gz
此時(shí),此項(xiàng)目已經(jīng)導(dǎo)入ubuntu宿主機(jī)內(nèi)。
第三步? 將項(xiàng)目從宿主機(jī)導(dǎo)入容器
啟動(dòng)docker,從ubuntu宿主機(jī)執(zhí)行:
sudo service docker start
sudo docker pull tensorflow/tensorflow? ? 【這里tensorflow/tensorflow是個(gè)官方鏡像名稱(chēng)】
啟動(dòng)一個(gè)容器:
sudo docker run -it -p 8000:8000 --name mytensor? tensorflow/tensorflow
sudo docker ps? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 得到containerID? ? ?62e188e9e750
將宿主機(jī)項(xiàng)目導(dǎo)進(jìn)此容器
sudo docker cp /home/huaw/machine_learn?62e188e9e750:/home
進(jìn)入容器,查看導(dǎo)入項(xiàng)目
sudo docker exec -it? container-ID? ?/bin/bash? ? [?container-ID由sudo docker ps指令得到62e188e9e750]
第四步 如何從宿主機(jī)運(yùn)行container中的內(nèi)容
在container的路徑/home/mycont 下有:
KNN.py? ? ? ? ? python程序
MNIST_data? 數(shù)據(jù)目錄
在宿主機(jī)執(zhí)行,或?qū)懗蓅h腳本:
#!/bin/bash
DOCKER_ID=62f3f40ab240
sudo docker exec? -it? ?62e188e9e750? /bin/bash? -c?? 'cd /home && python KNN.py'
可以實(shí)現(xiàn)從宿主機(jī)啟動(dòng)container內(nèi)部的訓(xùn)練。
sudo docker??run tensorflow/tensorflow:0.12.1-gpu? python train.py
直接進(jìn)行訓(xùn)練。
第五步 如何將容器生成image
這里用到前面注冊(cè)的china/tianjin賬號(hào)。
sudo docker? commit 62e188e9e750? china/tianjin
sudo docker images
可以看到本地多了一個(gè)鏡像china/tianjin
第六步 將鏡像上傳到HUB上
sudo docker push?china/tianjin
再次進(jìn)入docker-hub網(wǎng)頁(yè),發(fā)現(xiàn)Repositories中多出一個(gè)鏡像。至此大功告成!
參考文章:
Docker與深度學(xué)習(xí)_機(jī)器學(xué)習(xí)與系統(tǒng)-CSDN博客
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Docker知识6:实战!将一个tensorflow项目制作成Docker image的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: docker知识5:在WSL2的ubun
- 下一篇: 机器学习系列1:单变量线性回归