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的更多相关文章

  1. python:沙盒(virtualenv)

    当电脑需要使用多个版本的python时,可以使用沙盒:或者使用docker: virtualenv是Python自带的,通过pip安装的 [root@centos7 public]# cd jinji ...

  2. 当我们在安装tensorflow时,我们在安装什么?- Intro to TF, Virtualenv, Docker, CUDA, cuDNN, NCCL, Bazel

    (Mainly quoted from its official website) Summary: 1. TensorFlow™ is an open source software library ...

  3. centos7 + Nginx+ HTTPS + uwsgi + python3.6 + Docker + Django1.11 + mysql 5.6 + virtualenv 环境搭建

    环境搭建: 系统: ​ centos7.2 x64 开发环境: ​ python3.6 ​ Django 1.11 虚拟环境: [Docker](https://www.runoob.com/dock ...

  4. docker集成管理工具-shipyard的开发环境搭建笔记

    前段时间一直在研究openstack,后来老师告诉我需要用docker容器来搭建hadoop集群,所以就将战场转移到docker上来了,话说docker最近这段时间太火了,但是说实话我觉得应用起来还不 ...

  5. 使用docker部署standalone cinder

    | 版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.如有问题,可以邮件:wangxu198709@gmail.com 背景 OpenSta ...

  6. Docker教程:docker的概念及安装

    http://blog.csdn.net/pipisorry/article/details/50754385 Why docker 对于运维来说,Docker提供了一种可移植的标准化部署过程,使得规 ...

  7. Docker系列10—容器编排工具Docker Compose详解

    本文收录在容器技术学习系列文章总目录 1.Docker Compose 概述 Compose是一个用于定义和运行多容器Docker应用程序的工具.使用Compose,您可以使用Compose文件来配置 ...

  8. docker项目ssl 安全证书的种种

    一,证书挂着宿主的nginx上 这个很简单,只需要修改宿主nginx的配置文件即可 server { ssl default; server_name www.abc.com; #项目域名 ssl_c ...

  9. Python虚拟环境的安装和配置-virtualenv与windows下多个python版本共存

    Python虚拟环境的安装和配置-virtualenv与windows下多个python版本共存 windows下多个python版本共存 https://www.python.org/downloa ...

随机推荐

  1. 每日英语:China Grapples With Genetically Modified Foods

    A Chinese agricultural official's unsupported claims about the carcinogenic risks of consuming genet ...

  2. mysql实现topN top1

    有时会碰到一些需求,查询分组后的最大值,最小值所在的整行记录或者分组后的top n行的记录,像在hive中是有窗口函数的,可以通过它们来实现,但是MySQL没有这些函数,可通过下面的方法来实现 1.准 ...

  3. (壹)、java面向对象详解

    面向对象的概述: 1.用java语言对现实生活中的事物进行描述.通过类的形式来体现的. 2.怎么描述呢? 对于事物描述通常只关注两方面. 一个是属性,一个是行为. 3.成员变量和局部变量的区别: ①成 ...

  4. arduino知识

    如果你买过Adafruit, Sparkfun, Seeedstudio和Arduino Store的Kit,不难发现Arduino官方的无论从包装和印刷上都是最具艺术气质的,其次是Sparkfun, ...

  5. 数论 - SGU 107 987654321 problem

    987654321 problem Problem's Link Mean: 略 analyse: 这道题目是道简单题. 不过的确要好好想一下: 通过简单的搜索可以知道,在N<9时答案一定为0, ...

  6. Tagger: Deep Unsupervised Perceptual Grouping

    没看论文,但看了介绍视频,简直做了一个小型纪录片. 视频地址:https://www.youtube.com/watch?v=jfB_lWZA4Qo 中文翻译:http://blog.csdn.net ...

  7. 【BZOJ】1677: [Usaco2005 Jan]Sumsets 求和(dp/规律)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1677 完全背包很容易想到,将1,2,4...等作为物品容量即可. 然后这题还有一个递推式 f[i]= ...

  8. 我在Facebook学到的10个经验

    1.坚持你的远景,但要对细节灵活. 作为一个领导者,你需要依赖你自己的远景(至少在你负责的业务领域内)而那些和你一起或为你工作的人将依赖你的远见.什么是远景?就是对最终状态的一种描述.是你需要你的团队 ...

  9. 在Chem 3D软件用什么方法可以改变背景

    化学绘图过程中常常需要绘制三维结构的图形,Chem 3D软件是ChemOffice套件中专门用于绘制三维结构的组件.用过它的用户会发现,其背景颜色通常都默认为深蓝色,但是不是每个场景都适合用深蓝色的背 ...

  10. Python零碎(一)

    Python中的__name__和__main__含义详解 在写Python代码和看Python代码时,我们常常可以看到这样的代码: def main(): ...... if __name == & ...