Ich habe gerade angefangen, Docker zu lernen, weil ich ein neues Projekt mit Django+Hbase+Git gestartet habe. Es würde lange dauern, eine normale Entwicklungsumgebung zu erstellen, also habe ich Docker studiert, aber ich wei? nicht, wie man eine Entwicklungsumgebung erstellt mit Docker. Noch etwas unklar.
Die Idee unseres Projektteams ist, dass, solange jeder Docker auf seinem Host installiert hat, er Pycharm direkt in Docker verwenden kann, um über Git zu entwickeln, den Code zu ?ndern und zu synchronisieren, 最理想的情況是其他開發(fā)者連 Pycharm 都不用裝
Installieren Sie Python und Pycharm und Docker. Sie k?nnen das normale Debuggen und Ausführen des Codes in lokalem Pycharm durchführen. Ich wei? nicht, ob Docker eine solche Funktion erreichen kann, lol
首先docker里面是不能跑pycharm的,你要把docker的每個容器當(dāng)做是一個獨立的電腦。試問,別人的電腦上裝個pycharm,你們在同個局域網(wǎng)的時候,你能用他的pycharm來編輯你電腦上的python代碼嗎?
docker主要搞定是環(huán)境的隔離和打包
環(huán)境的隔離:docker的每個容器可以簡單理解為一個沙箱,在容器里面安裝的各種軟件都不會影響宿主機(jī)的真實軟件環(huán)境。假設(shè)一個場景,你手上有10個同時在維護(hù)的項目,但是問題是這10個項目各自依賴的python版本都不相同(項目1依賴python1.1,項目2依賴python1.2,項目3依賴python2.1...項目10依賴python3.3),如果不用docker,你怎么辦?在你電腦上把每個版本都裝一個?各個版本之間的環(huán)境依賴會不會有沖突?是不是想想就頭大。而docker就完全ok,他們各自環(huán)境完全獨立互不影響,想怎么玩都行
環(huán)境的打包: 假設(shè)你們有個100人的開發(fā)團(tuán)隊,有的開發(fā)環(huán)境是windows,有的是linux(具體發(fā)型版還各不相同),有的是mac。各自系統(tǒng)上安裝的軟件版本各種五花八門。這時候你們要開發(fā)一個項目,既然是一個項目,那必定最好是要統(tǒng)一開發(fā)環(huán)境咯,一致的各種配置參數(shù),一致的python版本,一致的各種擴(kuò)展包及擴(kuò)展包的版本,一致的環(huán)境變量等等,這時候如果讓各自配置各自的環(huán)境,可能對于老手來說三下五除二就搞定了,但是對于經(jīng)驗不是很足的新人來說,可能就這個環(huán)境就得搞好幾天。而docker就簡單了,只要一個人寫好一個dockerfile文件,里面寫好各種配置,再分發(fā)給所有開發(fā)組成員,大家只需要一個docker build命令,就完成了環(huán)境的搭建,而且軟件運行的系統(tǒng)環(huán)境,配置參數(shù),擴(kuò)展庫及依賴等都是一致的。項目完成之后,實際上線時,也可以用這個dockerfile來一鍵搭建線上的軟件項目運行環(huán)境(或者直接將本地開發(fā)時使用的容器打包為鏡像,然后發(fā)布鏡像),而且保證了線上運行環(huán)境和本地開發(fā)環(huán)境的一致,避免了各種因環(huán)境不同搞出來的各種問題了。
就你的問題而言,結(jié)合我個人的使用經(jīng)驗,Django,Hbase可以放在docker里面(Django鏡像應(yīng)該自帶python運行環(huán)境),pycharm和git安裝在宿主機(jī)。所以開發(fā)人員需要安裝的是pycharm+git+docker就好了
docker可以跑 pycharm? 再說了一個python環(huán)境而已,第三方引用也很好控制。
docker更多的作用是運維方面的,部署即用,不用搭建程序的運行環(huán)境。開發(fā)好了打包發(fā)布嘛,難道是想開發(fā)機(jī)器用docker?那就很有勇氣啦。