對docker 剛開始學習,是因為開始了一個新的項目,使用的是Django+Hbase+Git,光搭建普通的開發環境就得耗費很長時間,所以研究了一下docker,但是對docker 搭建開發環境還是有些不了解。
我們專案組的設想就是只要每個人主機上安裝了docker,就可以直接在docker 裡使用Pycharm 進行開發,修改程式碼和透過Git 同步,最理想的情況是其他開發者連Pycharm 都不用裝
,次些的情況是開發人員只需要安裝了python,Pycharm,和docker,就可以在本地的Pycharm 裡對程式碼進行普通的調試運行,不知道docker 能否實現這樣的功能,求大神指教lol
仅有的幸福2017-05-16 13:19:27
首先docker裡面是不能跑pycharm的,你要把docker的每個容器當做是一個獨立的電腦。試問,別人的電腦上裝個pycharm,你們在同個區域網路的時候,你能用他的pycharm來編輯你電腦上的python程式碼嗎?
docker主要搞定是環境的隔離和打包
環境的隔離:docker的每個容器可以簡單理解為一個沙箱,在容器裡面安裝的各種軟體不會影響宿主機的真實軟體環境。假設一個場景,你手上有10個同時在維護的項目,但是問題是這10個項目各自依賴的python版本都不相同(項目1依賴python1.1,項目2依賴python1.2,項目3依賴python2 .1...專案10依賴python3.3),如果不用docker,怎麼辦?在你電腦上把每個版本都裝一個?各版本之間的環境依賴會不會有衝突?是不是想想就頭大。而docker就完全ok,他們各自環境完全獨立互不影響,想怎麼玩都行
環境的打包: 假設你們有個100人的開發團隊,有的開發環境是windows,有的是linux(具體髮型版還各不相同),有的是mac。各自系統上安裝的軟體版本各種五花八門。這時候你們要開發一個項目,既然是一個項目,那必定最好是要統一開發環境咯,一致的各種配置參數,一致的python版本,一致的各種擴展包及擴展包的版本,一致的環境變數等等,這時候如果讓各自配置各自的環境,可能對於老手來說三下五除二就搞定了,但是對於經驗不是很足的新人來說,可能就這個環境就得搞好幾天。而docker就簡單了,只要一個人寫好一個dockerfile文件,裡面寫好各種配置,再分發給所有開發組成員,大家只需要一個docker build命令,就完成了環境的搭建,而且軟體運行的系統環境,配置參數,擴充庫及依賴等都是一致的。專案完成之後,實際上線時,也可以用這個dockerfile來一鍵搭建線上的軟體專案運行環境(或直接將本地開發時使用的容器打包為鏡像,然後發布鏡像),而且保證了線上運行環境和本地開發環境的一致,避免了各種因環境不同而搞出來的各種問題了。
就你的問題而言,結合我個人的使用經驗,Django,Hbase可以放在docker裡面(Django映像應該自帶python運行環境),pycharm和git安裝在宿主機。所以開發人員要安裝的是pycharm+git+docker就好了
漂亮男人2017-05-16 13:19:27
docker可以跑 pycharm? 再說了一個python環境而已,第三方引用也很好控制。
docker更多的作用是運維方面的,部署即用,不用搭建程式的運作環境。開發好了打包發布嘛,難道是想開發機器用docker?那就很有勇氣啦。