docker初级操作
????本地機器配置不給力,要租用阿里云的HPC服務器,怎奈阿里云只提供centos操作系統,而我的所有配置都是基于ubuntu系統,所以為了能夠解決系統不統一的矛盾,研究了一下docker,可以通過簡單的docker技術解決這個尷尬的問題。為了之后再查找操作,所以把目前用到的docker初級操作記錄下來,將來再用的話忘了也好查找。首先在機器上安裝好docker,具體可參考docker的官方文檔。
#從hub上pull一個鏡像下來 sudo docker pull ubuntu:14.04 #運行鏡像,實例化為容器 sudo docker run -i -t ubuntu:14.04 /bin/bash #在實例化的容器里操作,修改原始鏡像,比如在home下建一個test.cpp文件 cd home vi test.cpp #修改完容器后exit退出,然后commit保存修改到鏡像中 sudo docker commit -m "Your Info of this modification" -a "Info of user" ID(也就是實例化容器時的用戶ID) new_name(commit之后的新鏡像名) #先創建一個dockerhub賬號并登錄docker賬號 sudo docker login,然后輸入用戶名密碼 #將修改的鏡像push到docker hub,首先要修改一下鏡像的名字,比如剛剛修改完的鏡像名字為ubuntu,tag為14.04 sudo docker tag ubuntu(原鏡像名字):14.04(原鏡像tag) xhq11(你的docker hub用戶名)/ubuntu(傳到docker hub上的新名字):14.04(傳到docker hub上的新tag) #執行push動作,然后就可以在網頁的docker hub上看到push上來的鏡像了 sudo docker push xhq11/ubuntu:14.04(上行代碼修改后的名字和tag) #下載之前上傳的鏡像到本地,首先要保證本機上沒有要pull下來的鏡像,有的話要先刪除才能pull下來 sudo docker pull xhq11/ubuntu:14.04????至此就完成了docker的初級操作,可以通過docker技術來解決很多輕量級的環境部署問題。比如可以在ubuntu環境下完成相關的軟件安裝與環境配置并將其打包為一個鏡像上傳,再在centos系統下把這個鏡像pull下來運行,就可以在centos系統的機器上繼續之前ubuntu環境下的工作,而不需要重新配置一遍環境,也就解決了開頭說過的問題。
????最后還是要吐槽一下阿里云。現在的云產品居然還有只提供centos一種系統的,linux系統那么多,只有一個centos是什么意思。而且還這么貴,一年的租金都可以買一套物理機了,賺錢還是馬云爸爸會賺啊。
從主機上拷貝文件到容器:
首先運行一個容器,然后在主機上“sudo docker ps”查看運行的該容器ID,另起一個新的terminal,輸入“sudo docker cp path-to-file-in-the-host ID:path-to-file-in-the-container”,例如將主機桌面的上的test.py文件拷貝至容器的/home目錄,則"sudo docker cp /home/xhq11/desktop/test.py ID:/home"。拷貝后退出容器,執行上述commit操作修改鏡像。
從容器中拷貝文件到主機,sudo cp ID:path-to-file-in-the-container path-to-file-in-the-host。
updated 2017/3/22:
利用docker發布基于ubuntu的ssd-caffe環境配置鏡像,供其他host端使用。
????如前所述,老夫之所以會來搞什么什么docker,就是因為本地機器配置不給力(裝了titan x也忍受不了動輒三四十個小時的訓練)決定租用阿里云的hpc產品,怎奈阿里的hpc只提供centos系統,所以要解決的現實問題是:在centos OS中用ubuntu環境下的配置來訓練模型。為解決跨OS問題,決定通過docker來解決。所以本文的關鍵在于:通過docker來創建ubuntu下ssd-caffe的環境。
????過程其實蠻簡單的。由于鏡像需要調用host機的nvidia顯卡,所以要安裝nvidia-docker(https://github.com/NVIDIA/nvidia-docker),然后去docker hub上pull一個帶支持gpu的caffe鏡像下來放在host機上。只是實例化容器的時候稍微有點不同,之前用docker daemon來運行容器,現在由于要通過nvidia-docker來調用host端gpu,所以運行時daemon用nvidia-docker。如nvidia-docker run -it XXXX:tag即可。進去之后去Liuwei的github上把caffe-ssd下載下來拷貝到容器中去,按照在host端一樣的編譯安裝過程去操作就可以了,最后退出容器的時候commit一下鏡像就搞定了,然后push到docker hub上去就可以發布了,蠻easy 的。
總結
以上是生活随笔為你收集整理的docker初级操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pandas学习笔记五之pandas合并
- 下一篇: 新录制了一个Cytoscape整合富集分