久久96国产精品久久久-久久发布国产伦子伦精品-久久精品国产精品青草-久久天天躁夜夜躁狠狠85麻豆

技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁 > 教程 > 服務(wù)器類 >

如何使用vagrant和docker在OSX下管理創(chuàng)建虛擬環(huán)境簡明教程

來源:技術(shù)員聯(lián)盟┆發(fā)布時(shí)間:2018-05-02 00:23┆點(diǎn)擊:

Vagrant是一個(gè)基于Ruby的工具,用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境。docker 是一個(gè)開源的應(yīng)用容器引擎,開發(fā)者可以打包他們的應(yīng)用到一個(gè)可移植的容器中,然后發(fā)布到 Linux 上,也可以實(shí)現(xiàn)虛擬化。

 

 

虛擬化: 其實(shí)就是因?yàn)樵朴?jì)算的催生的技術(shù),目的是讓運(yùn)行在上面的應(yīng)用程序覺得自己獨(dú)占所有的資源。說白了就是資源管理/隔離和namspace的隔離.

Hypervisor: 這是虛擬化的一種,也就是操作系統(tǒng)上面在運(yùn)行一個(gè)或者多個(gè)操作系統(tǒng),這個(gè)底層的操作系統(tǒng)系統(tǒng)就是hypervisor.它來管理和分配那些創(chuàng)建的操作系統(tǒng) 所需要的資源.這種虛擬化也可以分成2種:原生(直接將虛擬的操作系統(tǒng)運(yùn)行在裸機(jī)上,比如kvm和xen,確定是需要特定的硬件支持)和宿生(軟件層面的,比如我這里 會(huì)用到的Virtualbox). 但是有個(gè)問題:運(yùn)行了多個(gè)操作系統(tǒng)實(shí)例,開銷很大,而且啟動(dòng)一個(gè)系統(tǒng)就要拿走一部分資源

LXC(LinuX Containers):是一種操作系統(tǒng)層面的虛擬化技術(shù).它只運(yùn)行一個(gè)內(nèi)核,一個(gè)虛擬的執(zhí)行環(huán)境就是一個(gè)容器。可以為容器綁定特定的cpu和memory節(jié)點(diǎn), 分配特定比例的cpu時(shí)間、IO時(shí)間,限制可以使用的內(nèi)存大小等.遺憾的是LXC只支持linux,不支持BSD,OSX,WINDOWS,所以我下面在我的Mac里面是通過 Virtualbox生成容器的. 至于為什么選擇LXC,我想除了開銷小之外,就是方便快速的部署

Docker: 是一種增加了高級(jí)API的LinuX Container(LXC)技術(shù),來至dotcloud, 官網(wǎng)這樣描述:提供了能夠獨(dú)立運(yùn)行Unix進(jìn)程的 輕量級(jí)虛擬化解決方案。它提供了一種在安全、可重復(fù)的環(huán)境中自動(dòng)部署軟件的方式.在Infoq你能找到主要特性,當(dāng)然,3個(gè)月過去了,它肯定成長了很多

Vagrant: 是一個(gè)ruby語言的工具. 用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境. 我們使用Vagrant在VirtualBox的虛擬機(jī)里安裝docker

什么系統(tǒng)來使用docker的一些想法

用OSX本來就有點(diǎn)…額,太繞. 其實(shí)docker已經(jīng)被ubuntu官方支持,添加docker的PPA然后安裝.

還可以把安裝流程封裝成Dockfile,用git做版本控制

誰需要學(xué)習(xí)本文

我想運(yùn)維同學(xué)會(huì)更需要一些.或者硬件資源缺乏的程序員們

程序員倒是可以學(xué)習(xí)把開發(fā)的應(yīng)用放在虛擬機(jī)里面做成模板,可以使用vagrant管理

為什么這么說?要是為了不污染開發(fā)環(huán)境,我們python已經(jīng)有個(gè)virtualenv+virtualenvwrapper.

對(duì)我這種程序員來說,我不需要那么多虛擬機(jī),其次是我還有物理機(jī)的測(cè)試環(huán)境,并且我們線上的操作系統(tǒng)相當(dāng)一致. 這篇文章就是為了了解docker

安裝Vagrant和Virtualbox

vagrant就是基于Virtualbox的,你可以使用gem安裝

gem install vagrant

我喜歡最新版,手動(dòng)安裝的

wget https://github.com/mitchellh/vagrant/archive/v1.2.2.tar.gz
tar zxvf v1.2.2.tar.gz
cd vagrant-1.2.2
sudo gem install bundler
bundle install
rake install

從github克隆docker

git clone https://github.com/dotcloud/docker.git
cd docker
vagrant up

‘vagrant up’其實(shí)就是調(diào)用了virtualbox的終端接口打開你的虛擬機(jī),類似下面的命令, 而不是你在界面點(diǎn)擊’開始’

/Applications/VirtualBox.app/Contents/MacOS/VBoxHeadless --comment docker_1373340358 --startvm 6e4ea638-77b2-400d-9fbe-3b4e8d4fba21 --vrde config

這時(shí)候你在virtualbox的界面可以看見啟動(dòng)的虛擬機(jī),名字就是上面的docker_1373340358

在docker目錄下已經(jīng)有個(gè)一個(gè)Vagrantfile文件,你想想Makefile,意思很類似,其實(shí)為什么要這個(gè)docker源, 很大原因就是要用這個(gè)文件,因?yàn)樗呀?jīng)配置好了默認(rèn)你要是用的box文件,類似執(zhí)行了下面的命令

vagrant init ubuntu ://files.vagrantup.com/precise64.box
.... #一些配置
vagrant up

首先說這里可能會(huì)報(bào)錯(cuò),類似這個(gè)網(wǎng)頁粘貼的內(nèi)容, 內(nèi)容有類似提示

INFO interface: error: There was an error executing the following command with
VBoxManage:

["import", "C:/Users/kwladyka/Desktop/My Dropbox/Vagrant/vagrant.d/boxes/base/bo
x.ovf"]

For more information on the failure, enable detailed logging with
VAGRANT_LOG.

解決辦法是:

cd /Users/dongwm/.vagrant.d/boxes/ubuntu/virtualbox/
openssl sha1 *.vmdk *.ovf > box.mf
cd -

但是官網(wǎng)說這樣會(huì)自動(dòng)幫我們?cè)黾觗ocker的PPA,更新源再安裝lxc-docker,可是沒有出現(xiàn),我后來都是自己去執(zhí)行的,如下

為什么用這個(gè)box?當(dāng)然了其它系統(tǒng)都可以,你可以下載其它的虛擬機(jī)鏡像,再安裝其系統(tǒng)下的lxc-docker(我會(huì)準(zhǔn)備一篇gentoo版本的文章)