校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 在Mac OS上安裝Vagrant和Docker的教程

在Mac OS上安裝Vagrant和Docker的教程

熱門標(biāo)簽:高德地圖標(biāo)注商家在哪 400電話申請怎么看 天音通信電話機(jī)器人 400電話從哪里申請濱州 江西南昌百應(yīng)電話機(jī)器人 杭州400電話如何申請的 隨州營銷電話機(jī)器人怎么樣 機(jī)器人電話機(jī)創(chuàng)意繪畫 hbuilder地圖標(biāo)注

當(dāng)聽到很多人在說Docker是多么多么的棒,很多新潮的孩子都在使用它時,我決定在我的開發(fā)環(huán)境上也來嘗試下。在下面的這篇文章中,我將講解在Mac OS X怎樣建立Postgres,Elasticsearch和Redis。

什么是Docker

Docker用輕量容器把一個APP從它運行的OS中隔離開。它把APP放入到一個孤立的盒子中,對外只呈現(xiàn)需要使用的文件夾和端口。

這樣,基于建立和使用APP的容器是可重用,共享的。目前,在Docker集中已經(jīng)存在了15,000種以上的容器。Docker就像一個商店的存儲庫,當(dāng)你需要建立一個你想要的APP時,你首先去挑出它,然后把它下載下來打開即可。


在OS X上安裝Docker

Docker不是天生就能運行在OS X上的,它需要一個包含LINUX容器的Linux內(nèi)核。因此,當(dāng)你想像我一樣要安裝OS X時,你將需要一套虛擬器。

不要使用boot2docker

當(dāng)試圖讓docker工作時,我發(fā)現(xiàn)“非常容易”安裝。這將使用一個稱之為boot2docker的工具,該工具是一個像virtualBox的虛擬機(jī)上的瘦包裝。

我馬上發(fā)現(xiàn),這個工具有一些嚴(yán)重的問題,例如:在一個穩(wěn)定狀態(tài)下將會終止任何獲取Docker的進(jìn)程。我不想在這方面浪費太多的體力和腦細(xì)胞,所以我繼續(xù)尋找了一個可替代的解決方案。

使用Vargrant

自從Vagrant的1.6版本之后,已經(jīng)集成了支持Docker的配套組件。Vargrant是一種類似于VirtualBox的虛擬軟件,它采用一種聲明Ruby DSL的方法來描述你的環(huán)境。

我非常喜歡這種定義虛擬環(huán)境的方式,因為當(dāng)你的環(huán)境發(fā)生故障時,你可以記錄下來當(dāng)時的信息,再次開始使用,而不用遺漏下大量的類似環(huán)境變量的信息。
安裝Stuff

首先,讓我們?yōu)g覽下我們需要安裝的各種事宜。

Homebrew安裝:
 

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

Cask安裝:
 

brew tap caskroom/homebrew-cask 
brew install brew-cask

Vagrant 和 VirtualBox安裝:

brew cask install virtualbox 
brew cask install vagrant


Vagrant文件

一個vagrant文件來描述一個使用Ruby DSL虛擬機(jī)環(huán)境的需求。當(dāng)描述Docker容器時,Vagrant使每一個容器都好像在使用自己獨有的虛擬機(jī)一樣。事實上這是一個假象,因為每一個Docker容器實際上是允許在各種的代理虛擬機(jī)上的。

因此,兩個vagrant文件是非常必須的,一個文件是用來定義代理虛擬機(jī)(Provisioner),另外一個文件是用來定義Docker容器的(Providers)。
代理虛擬Vagrant文件

代理虛擬Vagrant文件被叫做:Vagrantfile.proxy
 

VAGRANTFILE_API_VERSION = "2"Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
 config.vm.box = "hashicorp/precise64"
 config.vm.provision "docker"
 config.vm.provision "shell", inline:
  "ps aux | grep 'sshd:' | awk '{print $2}' | xargs kill"
 
 config.vm.network :forwarded_port, guest: 6379, host: 6379
 config.vm.network :forwarded_port, guest: 5432, host: 5432
 config.vm.network :forwarded_port, guest: 9200, host: 9200end

這使用hashicorp/precise64 Ubuntu 12.04的64位來處理代理虛擬機(jī)。它也提供Docker和一些神奇的shell命令來讓Docker工作。

最后的事情就是設(shè)置轉(zhuǎn)發(fā)端口了。它使用config.vm.network來為Redis, Elasticsearch 和Postgres來進(jìn)行配置,用代理虛擬機(jī)映射到OS X。

Docker 容器的 Vagrant 文件

這是Vagrantfile的主要內(nèi)容:

 

VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
 
 config.vm.define "redis" do |v|
  v.vm.provider "docker" do |d|
   d.image = "dockerfile/redis"
   d.volumes = ["/var/docker/redis:/data"]
   d.ports = ["6379:6379"]
   d.vagrant_vagrantfile = "./Vagrantfile.proxy"
  end
 end
 
 config.vm.define "elasticsearch" do |v|
  v.vm.provider "docker" do |d|
   d.image = "dockerfile/elasticsearch"
   d.ports = ["9200:9200"]
   d.vagrant_vagrantfile = "./Vagrantfile.proxy"
  end
 end
 
 config.vm.define "postgres" do |v|
  v.vm.provider "docker" do |d|
   d.image = "paintedfox/postgresql"
   d.volumes = ["/var/docker/postgresql:/data"]
   d.ports = ["5432:5432"]
   d.env = {    USER: "root",    PASS: "abcdEF123456",    DB: "root"
   }
   d.vagrant_vagrantfile = "./Vagrantfile.proxy"
  end
 endend

這個文件定義了三個容器: Redis , Elasticsearch, 和 Postgres 帶有圖片dockerfile/redis, dockerfile/elasticsearch 和 paintedfox/postgresql。

每個文件定義 vagrant_vagrantfile 作為 proxy VM 文件,這使得它們在同一個 proxy 虛擬機(jī)上運行。

Redis 和 Postgres 的 volumes 定義是為了它們的信息可以存儲在 proxy VM 上,而不是在容器中。這也是容器可以更刪除或升級而數(shù)據(jù)不會丟失的原因。下一步是映射這些文件從proxy VM 到 OS X ,但是沒必要讓其運轉(zhuǎn)著。

每個容器上的 ports 定義哪個端口轉(zhuǎn)到 proxy VM 。這些需要匹配 proxy VM 到 OS X 的端口。

Postgres 容器也定義了需要設(shè)置它的服務(wù)器的環(huán)境變量。這些可以用來在OS X 里設(shè)置缺省的Postgres 服務(wù)器,通過設(shè)置環(huán)境變量 PGHOST=localhost PGUSER=root PGPASSWORD=abcdEF123456 來實現(xiàn)。

使用Vagrant工作

在你的Vagrant文件相同的目錄內(nèi),你可以運行:
 

vagrant up --provider=docker

第一次運行這個時,Vagrant將下載然后啟動proxy VM,然后下載并啟動Docker容器。在這些初始化下載之后每次運行Vagrant都將重復(fù)使用現(xiàn)有的圖片。

可以查看Docker容器的狀態(tài):
 

vagrant status

應(yīng)該輸出一些東西類似:
 

復(fù)制代碼 代碼如下:

Current machine states:
 
redis                     running (docker) 
elasticsearch             running (docker) 
db                        running (docker)

要測試Docker容器是否正確運行,可以使用 Redis 和 Postgres 客戶端, 和 curl for Elasticsearch。只需要檢查redis-cli和psql到服務(wù)器的連接,和curl http://localhost:9200響應(yīng)。

如果需要連接到proxy VM(非常有助于調(diào)試),運行vagrant global-status,這將列出所有VM,包括proxy。然后調(diào)用vagrant ssh ID>,ID為proxy的ID。建議不要手動改變這個proxy VM,使用一個Chef(或類似的)腳本,這樣改變可以更容易的測試和分布。

性能

使用虛擬化時,第一個問題總是會問“性能的影響有多少?”。要找出性能影響是多么的糟糕,我的同事和我都做了一個Postgres,在相同的硬件上做了Elasticsearch 和 Redis 加強(qiáng)測試。唯一的區(qū)別是一個測試有本機(jī)安裝的軟件而另一個有Docker自定義容器。帶有本機(jī)軟件的運行了2分鐘,而帶有容器的運行了3分鐘。

這個性能影響并不像我想象的那樣小,甚至可能會更糟。即使這樣,我將繼續(xù)使用Docker做開發(fā),但并不推薦大家將它作為所有開發(fā)環(huán)境問題的靈丹妙藥。


注意:一些其他使用Vagrant 和 Docker的限制在 這里 列出
總結(jié)

我還看不到"Vagrant with Docker"的路在哪里。不過,在看過可能的情況后,我不禁思考它可以用于什么其他地方。另外,它是我遇到過的最好玩的虛擬化,樂趣就在于編程。

您可能感興趣的文章:
  • Linux服務(wù)器搭建nvidia-docker環(huán)境過程詳解
  • docker安裝influxdb的詳細(xì)教程(性能測試)
  • 詳解docker國內(nèi)鏡像拉取和鏡像加速registry-mirrors配置修改
  • Docker容器訪問宿主機(jī)網(wǎng)絡(luò)的方法
  • 詳解Dockerfile 中的 COPY 與 ADD 命令
  • 編寫最佳的Dockerfile的方法
  • docker容器啟動后添加端口映射
  • Docker容器應(yīng)用中,10個要不得的壞習(xí)慣

標(biāo)簽:常德 沈陽 鶴崗 葫蘆島 保定 招商 石嘴山 昆明

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在Mac OS上安裝Vagrant和Docker的教程》,本文關(guān)鍵詞  在,Mac,上,安裝,Vagrant,和,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在Mac OS上安裝Vagrant和Docker的教程》相關(guān)的同類信息!
  • 本頁收集關(guān)于在Mac OS上安裝Vagrant和Docker的教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    99国产欧美久久久精品| 不卡的av电影| 中文字幕中文在线不卡住| 欧美日韩国产大片| 成人免费看黄yyy456| 图片区小说区国产精品视频| 久久精品一区蜜桃臀影院| 在线看不卡av| 国产高清久久久| 青青青爽久久午夜综合久久午夜| 亚洲图片另类小说| 久久久精品欧美丰满| 91精品在线免费观看| 色哟哟精品一区| 成人av在线一区二区三区| 精品亚洲aⅴ乱码一区二区三区| 亚洲精品乱码久久久久久久久| 久久夜色精品一区| 欧美顶级少妇做爰| 在线观看网站黄不卡| 成人av网在线| 国产精品一区二区果冻传媒| 日韩电影在线看| 亚洲电影激情视频网站| 亚洲欧洲国产日韩| 日本一区二区三区免费乱视频| 日韩视频一区二区三区在线播放| 色999日韩国产欧美一区二区| 丰满白嫩尤物一区二区| 精彩视频一区二区| 免费看黄色91| 亚洲二区在线观看| 亚洲一区二区三区国产| 亚洲一区二区视频在线观看| 中文字幕一区二区不卡| 国产精品久久久久四虎| 欧美高清在线一区| 国产欧美日韩视频一区二区| 久久夜色精品国产欧美乱极品| 91精品国产乱码| 69成人精品免费视频| 欧美狂野另类xxxxoooo| 色欧美日韩亚洲| 日本韩国欧美在线| 色网综合在线观看| 色综合久久久久| 91免费看`日韩一区二区| 不卡av免费在线观看| 成人av网站在线观看| 不卡的电影网站| 97精品国产97久久久久久久久久久久| www.亚洲精品| 91小视频免费观看| 欧洲精品一区二区三区在线观看| 色婷婷亚洲精品| 欧美视频一区二区三区在线观看| 欧美视频精品在线| 欧美精品一二三四| 欧美一区永久视频免费观看| 91精品国产品国语在线不卡| 欧美成人精品3d动漫h| 久久久久国产成人精品亚洲午夜| 日本一区二区不卡视频| 亚洲人成精品久久久久久| 一区二区三区在线播| 午夜久久久影院| 久久精品999| 成人美女视频在线看| 在线观看视频欧美| 日韩美女主播在线视频一区二区三区 | 一本色道久久综合亚洲91| 色综合久久88色综合天天6| 欧美日韩一级黄| 欧美sm美女调教| 国产精品久久久久影院色老大| 亚洲精品中文在线| 奇米一区二区三区| 波多野结衣一区二区三区| 欧美专区日韩专区| 日韩精品在线一区| 亚洲欧洲日本在线| 蜜臀91精品一区二区三区 | 成人精品视频一区二区三区尤物| 色婷婷精品久久二区二区蜜臀av | 欧美性猛交xxxx黑人交| 亚洲精品一区二区三区影院| 中文字幕在线视频一区| 日韩精品一卡二卡三卡四卡无卡| 国产一区二区免费在线| 欧美午夜精品一区二区蜜桃| 精品国产免费人成电影在线观看四季 | 国产精品视频免费看| 亚洲不卡av一区二区三区| 国产精品亚洲专一区二区三区 | 久久久久亚洲综合| 亚洲精品成人精品456| 久久66热偷产精品| 欧美性极品少妇| 国产欧美日韩精品在线| 午夜精品福利一区二区三区蜜桃| 精品亚洲成a人在线观看| 在线观看不卡视频| 国产精品欧美精品| 免费在线观看视频一区| 色综合天天视频在线观看| 2023国产精品自拍| 午夜国产精品一区| 99综合影院在线| 久久一夜天堂av一区二区三区| 亚洲午夜在线电影| 92精品国产成人观看免费| 精品国产91洋老外米糕| 亚洲一区二区高清| 成人精品视频一区二区三区尤物| 日韩欧美你懂的| 亚洲第一在线综合网站| 色哟哟一区二区在线观看| 中文一区在线播放| 国产大片一区二区| 日韩免费看网站| 日韩主播视频在线| 欧美视频日韩视频在线观看| 亚洲色图欧洲色图| eeuss国产一区二区三区| 久久久久久免费网| 精品一区免费av| 日韩欧美在线网站| 日韩精品一二区| 欧美日韩情趣电影| 亚洲一区二区三区在线播放| 成人免费va视频| 国产免费久久精品| 国产91精品一区二区麻豆网站| 精品国精品国产| 狠狠色丁香九九婷婷综合五月| 欧美一区二区三区在线观看视频| 亚洲一区二区三区四区五区中文| 97se亚洲国产综合自在线不卡| 国产精品免费免费| av在线综合网| 亚洲色图一区二区| 91久久精品国产91性色tv| 一区av在线播放| 欧美视频一区在线观看| 日韩专区一卡二卡| 精品日本一线二线三线不卡| 麻豆成人久久精品二区三区红| 555夜色666亚洲国产免| 日韩av在线免费观看不卡| 91超碰这里只有精品国产| 肉色丝袜一区二区| 欧美成人精品3d动漫h| 国产精品99久久久久久有的能看| 久久精品视频一区二区三区| 国产a久久麻豆| 国产精品久久久久婷婷| 色综合久久久久久久久| 午夜一区二区三区在线观看| 91精品福利在线一区二区三区| 精品在线一区二区| 国产精品免费视频网站| 一本到不卡免费一区二区| 亚洲一区二区三区国产| 日韩欧美国产不卡| 成人午夜视频福利| 一区二区三区加勒比av| 欧美一二三在线| 国产精品资源网站| 一区二区三区四区不卡在线| 9191久久久久久久久久久| 黄页视频在线91| 亚洲欧洲日产国产综合网| 欧美日韩精品是欧美日韩精品| 三级久久三级久久| 国产色爱av资源综合区| 在线精品视频小说1| 麻豆视频观看网址久久| 中文字幕av一区二区三区高| 欧美日韩视频一区二区| 国内精品久久久久影院色| 最新不卡av在线| 欧美一区日韩一区| 成人国产电影网| 日韩中文字幕麻豆| 欧美极品美女视频| 欧美区在线观看| 国产成人在线观看免费网站| 亚洲最新在线观看| 久久这里只精品最新地址| 欧洲精品视频在线观看| 国产精品自拍毛片| 日日夜夜精品免费视频| 国产精品污网站| 91精品国产综合久久精品图片| av中文字幕不卡| 九色|91porny| 亚洲电影欧美电影有声小说| 中文字幕五月欧美| 精品播放一区二区| 欧美日韩你懂得|