1. 程式人生 > >Docker與virtualenv

Docker與virtualenv

機器 *** con 隔離 evel 框架 帶來 開發者 點擊

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