mac上vagrant怎么打造本地开发环境

2020-11-22 07:39:41 字数 4758 阅读 2741

1楼:春谔釉

不分场景而直接比对vagrant和docker是不恰当的!在一些简单场景中,它们两款产品作用是重复的,但在场景中,它们两款产品无法相互替代。事实上,vagrant抽象度比docker更高,因此直接用vagrant同docker相比较是不恰当的。

而把vagrant同boot2docker(一款运行docker最小的内核)进行比较似乎更加恰当。  vagrant为了支持开发,在启动虚拟机环境时启动了很多的应用和服务。vagrant可以在virtualbox,vmware上面运行(docker无法执行)。

vagrant也可以在aws,openstack这些云环境中运行。即便你使用了docker的容器,vagrant同样也没问题。vagrant可以自动install,pulldown,build,rundockercontainers。

  比如在vagrantv1.6版本中,vagrant集成了docker-baseddevelopmentenvironments,因此vagrant可以在windows,mac和linux上面提供docker服务。  vagrant没有想替代docker的想法,相反它还包含了docker的一些特性。

  如果我们从逻辑层面来比较vagrant和docker的话,那么:  1、docker只能执行docker所定义的容器。  2、docker缺乏灵活的隔离方案(docker只能运行在linux主机环境中)。

  如果我们从production和ci层面来比较,那么docker就无法与vagrant相比了:vagrant没有上面的约束条件,而docker必须依赖它们。  如果你的项目必须使用docker的容器,同时只能部署在linux主机中。

这个时候docker的确是一个不错的选择。除此之外,我就看不到使用docker的优势了,相反你还浪费了vagrant很多的优点:vagrant可以支持多种虚拟环境,例如virtualbox,vmware,aws,openstack等等。

无论你使用何种虚拟环境,vagrant都可以顺利执行起来。如果你使用了docker,也可以在vagrant中顺利安装docker。vagrant可以降低项目复杂度。

或者换个说法:你只需要考虑如何执行你的项目就可以,而不论这个项目是用的docker还是什么别的。在未来,如果出现了docker的竞争者,那么vagrant也可以顺利执行它。

vagrant可以运行在多个主机环境中,windows(xp以上),mac(10.5以上),linux(2.6内核版本以上)。

如果你使用了docker,那么vagrant也可以在上面三种操作系统之上运行你的docker。vagrant可以更好的配置网络和文件共享。比如:

vagrant可以给一个vm配置静态ip和端口数据**。不论你使用的virtualbox还是vmware,vagrant都可以很好的完成配置。对于文件共享来说,vagrant提供了多种文件挂载方案供你考虑。

如果你使用了docker,那么这些事情就都需要你亲自动手来做了。vagrant1.6中集成了docker-baseddevelopmentenvironments。

所以在mac和windows环境中,vagrant会自动启动一个虚拟机来执行docker,这样就达到了docker的跨平台化。而背后例如网络,文件等等操作都是vagrant默默完成的。  下面两点是我听到docker可以替代vagrant的声音:

"docker需要移动的数据很少"的确,docker有这个特点(应该指的是docker采用的ufs,导致docker每次变动所需的数据很少--笔者猜测)。但是当你在每个项目都使用docker,或者在每个项目的现在,将来都使用docker时,你就会发现docker所产生的数据并不少。而如果你使用vagrant,那么只需要移动一次就可以完成。

(原文:"itisles**ovingparts"-yes,itcanbe,ifyouusedockerexclusivelyforeveryproject.eventhen,itissacrificingflexibilityfordockerlock-in.

ifyoueverdecidetonotusedockerforanyproject,past,present,orfuture,thenyou'llhavemoremovingparts.ifyouhadusedvagrant,youhavethatonemovingpartthatsupportstherest)."docker启动非常快",当使用docker启动容器时,它比其他虚拟机启动的都快。

但是我要说的是,目前从产品化角度分析所有vagrant主机基本都是启动一次,然后不再停机。如果从快速部署开发环境来说,docker这个特性真的是非常好。  所以,我们现在可以得知vagrant和docker是有很大区别的,直接比较这两个是不正确的。

对于开发环境来说,vagrant是一种更为抽象,更为通用的解决方案。docker所能提供的场景只是vagrant所支持的特殊场景之一。  在一些极端案例场景下,docker完全可以替代vagrant。

但在的场景下,这是错误的。同时vagrant也不会封锁你使用docker。  针对mitchell的这些解释,hykes写出了下述的论点:

  如果你仅仅是想管理虚拟机,那么你应该使用vagrant。如果你想快速开发和部署应用,那么应该使用docker。  vagrant是一款管理虚拟机的工具,而docker是一款通过将应用打包到轻量级容器,而实现构建和部署的工具。

两者适用范围不同。一个容器就是一个包含了应用执行所依赖的数据(包括lib,配置文件等等)。它可以保证应用在一个可重复的环境中随时执行。

  有了这个容器,就可以很简单的构建你的容器也可以随时随地的进行部署。  docker只能在linux上面执行是一个很大的误区!事实上,docker可以在mac和windows上面安装。

如果你在mac上面安装docker,那么会有一个大概25mb的精简linuxvm来充当mac和docker直接的交流者。一旦docker安装完成后,就可以使用同样的命令进行操作了。这样,世界一下就美好了:

你通过轻量级的容器可以更好的测试和开发你的应用,并且很容易的将这些应用进行分发(比如通过ponents是最底层的原型。在vagrant中machines,blockdevices,andsshkeys是最底层的原型。vagrant工作在系统底层,它同另外一个vagrant容器交互的方式只有把它当做一个可以"boot"和"loginto"的机器。

因此,你可以在docker上面安装插件后,执行"vagrantup"命令后等待美好的事情发生。其次,可锁定的环境参数(thelock-inargument)。""ifyouusevagrantasanabstraction,youwillnotbelockedintodocker!

"站在管理虚拟机的vagrant角度上面看,这句说没有错:docker不是另外一个独立的容器。像ec2和vmware一样,我们要避免创造一个和其它工具相**的东西。

docker对宿主机没有任何要求,它允许你通过轻量级的容器在任意地方进行部署。在你部署应用时,不需要考虑应该部署到什么环境中。比如说:

你可以在其他人提供的主机(很可能上面已经部署了ec2或者vagrant)上面部署应用。  所以最后可以说:vagrant适合用来管理虚拟机,而docker适合用来管理应用环境。

mac 怎么安装指定版本的vagrant

2楼:匿名用户

vagrant是一个基于ruby的工具,用于创建和部署虚拟化开发环境。docker 是一个开源的应用容器引擎,开发者可以打包他们的应用到一个可移植的容器中,然后发布到 linux 上,也可以实现虚拟化。

虚拟化: 其实就是因为云计算的催生的技术,目的是让运行在上面的应用程序觉得自己独占所有的资源。说白了就是资源管理/隔离和namspace的隔离/mitchellh/vagrant/archive/v1/dotcloud/docker/files/precise64work :

forwarded_port, :host => port, :guest => port

endend什么意思呢?其实你在本机的环境变量设置了forward_docker_ports,默认就会把49000/dongweiming/flask_reveal/archive/v1.0.

tar.gz #这是我提供的release版本

# 解压,进入目录下 格局需要安装依赖pip install -r requirements.txt

# 加'-run'可以运行你想的某种/些服务,设置内存,主机名,端口**,dns,环境变量等

docker logs $web_worker #可以查看manage.py已经启动了

web_port=$(docker port $web_worker 5000) #使用虚拟机的一个端口映射到这个容器的5000端口

127.0.0.1:$web_port #好吧 你可以通过本机访问了

vagrant怎么配置 vmware 环境

3楼:终身追求

实际上vagrant只是一个让你可以方便设置你想要的虚拟机的便携式工具,它底层支持virtualbox、vmware甚至aws作为虚拟机系统!

如何访问vagrant 搭建的服务器环境

4楼:张包子

做web开发少不了要在本地搭建好开发环境,虽然说目前各种脚本都有对应的windows版,甚至是一键安装包,但很多时候和windows环境的相性并不是那么好,各麻烦的问题是实际部署的环境通常是linux,常常还要面临着开发和部署环境不一致,上线前还要大量的调试。更要命的是,如果有很多机器需要装的话,那就真是一个灾难了。

windows下玩linux少不了虚拟机,但装系统依旧是相当费事。在现在什么都在自动化的今天,vagrant就是这么一个神器,基于ruby开发,使用开源 virtualbox 作为虚拟化支持,可以轻松的跨平台部署。