Docker與virtualenv
docker環境統一,組件隔離
關於Docker與virtualenv,其本質是一樣的,virtualenv虛擬python運行環境,保證系統python環境的整潔,docker也是一樣,只是它虛擬的是系統運行環境。docker的用途更廣,因為它虛擬的是操作系統。
一、簡介
1、關於Docker,它是由go語言編寫的一個基於Linux容器的容器引擎。讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的
Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的
app)。幾乎沒有性能開銷,可以很容易地在機器和數據中心中運行。最重要的是,他們不依賴於任何語言、框架包括系統。
其優點:
(1)、性能卓越。
(2)、可以執行帶來了工作效率的提升。
2、關於virtualenv,我們先看一個例子:在Python項目中,以Django為例,我們系統的版本是1.10.1的版本,但是實際項目中需要的版本為1.8.x。也就是說不同項目之間使用不同版本的某些包,但是由於某些原因,卻不能全部都升級到最新版本。所有包如果都用同一個目錄的話,很容易出現各種因更新而造成的沖突,這時候就需要對環境進行隔離,使用虛擬環境讓全局的site-packages目錄幹凈與便於管理。
二、Docker安裝
1、安裝Docker
在其官方網站上各類細節寫得很詳細。我們可以打開菜單第一欄的"Install"根據當前使用的系統下載對應版本。如果是Linux系統,對應的apt-get或者yum。
對於MAX OS X 按照官方文檔進行,然後點擊“Docker Quickstart Terminal”就會進入Docker shell。它會進行一系列初始化,最後提示:docker is configured to use ****** machine with 192.168.99.100。
這裏的192.168.99.100就是Docker創建虛擬機的IP,可以通過命令:docker -machine ip 查看。
如果:docker--version沒有報錯,那麽就表明安裝成功了。
2、下載鏡像:
這裏有一個基於Ubuntu:16.04LTS的鏡像:docker pull dongweiming/web_develop:dev
3、進入容器
命令:docker run --name web_dev -it -p 9000:9000 -p 3141:3141 -p 5000:5000 dongweiming/web_develop /bin/zsh
關於命令中:
--name:制定了容器的名字為web_Dev,如果不指定,將隨機取一個名字
-p:顯式地暴露特定端口
/bin/zsh::是登陸容器的默認shell
4、啟動、退出
啟動:docker start web_dev
退出:docker attach web_dev (需要回車2次)
三、virtualenv
1、安裝:
pip install virtualenv
2、創建虛擬環境(以創建Django項目為例):
virtualenv django
3、激活環境:
Windows下:切換到scripts下,輸入activate
Linux下:進入django目錄,然後輸入:source ./bin/activate
這有一篇文章大家可以參考一下,有圖:
http://blog.csdn.net/topkipa/article/details/52511048
4、退出
退出命令:deactivate
5、其他
(1)virtualenv默認只是生成一個非常標準的Python環境,而在實際運用中,項目往往會有第三方包的依賴,會出現多個項目依賴相同包的情況,因此,我們可以一個定制的virtualenv腳本解決該問題。
(2)virtualenvwrapper—virtualenv的功能擴展:用來管理全部虛擬環境,方便創建刪除和拷貝虛擬環境。可以使用Tab補全虛擬環境,支持用戶粒度的鉤子支持。
Docker與virtualenv