zoukankan      html  css  js  c++  java
  • 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补全虚拟环境,支持用户粒度的钩子支持。

  • 相关阅读:
    记一道乘法&加法线段树(模版题)
    2021CCPC网络赛(重赛)题解
    Codeforces Round #747 (Div. 2)题解
    F. Mattress Run 题解
    Codeforces Round #744 (Div. 3) G题题解
    AtCoder Beginner Contest 220部分题(G,H)题解
    Educational Codeforces Round 114 (Rated for Div. 2)题解
    Codeforces Global Round 16题解
    Educational Codeforces Round 113 (Rated for Div. 2)题解
    AtCoder Beginner Contest 182 F
  • 原文地址:https://www.cnblogs.com/fengff/p/8981702.html
Copyright © 2011-2022 走看看