婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

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

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

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

什么是Docker

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

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


在OS X上安裝Docker

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

不要使用boot2docker

當試圖讓docker工作時,我發現“非常容易”安裝。這將使用一個稱之為boot2docker的工具,該工具是一個像virtualBox的虛擬機上的瘦包裝。

我馬上發現,這個工具有一些嚴重的問題,例如:在一個穩定狀態下將會終止任何獲取Docker的進程。我不想在這方面浪費太多的體力和腦細胞,所以我繼續尋找了一個可替代的解決方案。

使用Vargrant

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

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

首先,讓我們瀏覽下我們需要安裝的各種事宜。

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虛擬機環境的需求。當描述Docker容器時,Vagrant使每一個容器都好像在使用自己獨有的虛擬機一樣。事實上這是一個假象,因為每一個Docker容器實際上是允許在各種的代理虛擬機上的。

因此,兩個vagrant文件是非常必須的,一個文件是用來定義代理虛擬機(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位來處理代理虛擬機。它也提供Docker和一些神奇的shell命令來讓Docker工作。

最后的事情就是設置轉發端口了。它使用config.vm.network來為Redis, Elasticsearch 和Postgres來進行配置,用代理虛擬機映射到OS X。

Docker 容器的 Vagrant 文件

這是Vagrantfile的主要內容:

 

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 虛擬機上運行。

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

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

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

使用Vagrant工作

在你的Vagrant文件相同的目錄內,你可以運行:
 

vagrant up --provider=docker

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

可以查看Docker容器的狀態:
 

vagrant status

應該輸出一些東西類似:
 

復制代碼 代碼如下:

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

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

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

性能

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

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


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

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

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

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

巨人網絡通訊聲明:本文標題《在Mac OS上安裝Vagrant和Docker的教程》,本文關鍵詞  在,Mac,上,安裝,Vagrant,和,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在Mac OS上安裝Vagrant和Docker的教程》相關的同類信息!
  • 本頁收集關于在Mac OS上安裝Vagrant和Docker的教程的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日本一区中文字幕 | 欧美日韩亚洲综合| 久久久久亚洲综合| 色偷偷久久一区二区三区| 99综合影院在线| 26uuu欧美| 国产v综合v亚洲欧| 日本一区二区综合亚洲| 国产综合成人久久大片91| 欧美猛男超大videosgay| 亚洲免费观看高清完整| 国产91精品精华液一区二区三区| 91精品国产入口在线| 一区二区三区在线观看视频| 色拍拍在线精品视频8848| 亚洲精品自拍动漫在线| 91国偷自产一区二区三区观看| 夜夜精品浪潮av一区二区三区| 不卡av在线免费观看| 亚洲欧美福利一区二区| 欧美日韩成人高清| 久久草av在线| 亚洲精品自拍动漫在线| 日韩三级视频在线观看| 成人黄色片在线观看| 亚洲韩国一区二区三区| 久久精品亚洲国产奇米99| 成人一二三区视频| 午夜精品福利一区二区三区av| 日韩免费电影一区| 在线看日本不卡| 国产在线精品不卡| 亚洲黄色免费电影| 精品福利视频一区二区三区| 91小宝寻花一区二区三区| 蜜臀久久99精品久久久久久9| 中文字幕va一区二区三区| 91精品国产91久久久久久最新毛片| 国产乱码精品一品二品| 一区二区三区在线观看动漫 | 国产婷婷色一区二区三区在线| 日韩av二区在线播放| 国产精品色哟哟网站| 日韩欧美中文字幕精品| 欧美亚洲一区二区三区四区| 成人18精品视频| 国产精品一级二级三级| 精品一区免费av| 青青草国产成人99久久| 婷婷中文字幕综合| 日本亚洲天堂网| 精品在线免费视频| 国产在线视频一区二区| 视频一区二区中文字幕| 热久久久久久久| 欧美aaaaa成人免费观看视频| 日韩中文字幕不卡| 蜜臀久久久99精品久久久久久| 美女精品自拍一二三四| 国内精品写真在线观看| 国产高清视频一区| 91猫先生在线| 欧美一区二区播放| 国产视频一区在线播放| 中文字幕一区二区三区在线观看| 亚洲精品日韩一| 韩国精品免费视频| a亚洲天堂av| 欧美一卡二卡三卡| 国产精品看片你懂得| 亚洲成人免费电影| 国产·精品毛片| 欧美久久久久免费| 17c精品麻豆一区二区免费| 亚洲自拍欧美精品| 成人午夜视频在线| 91精品婷婷国产综合久久 | 麻豆精品一区二区综合av| 国产精品自在在线| 欧美日韩亚州综合| 亚洲精品乱码久久久久久久久| 欧美一区二区三区小说| 欧美一区二区三区日韩视频| 亚洲国产成人私人影院tom| 视频一区欧美精品| 欧美精品日韩综合在线| 亚洲另类春色校园小说| 成人免费毛片a| 日本一区二区三区电影| 狠狠色丁香久久婷婷综| 欧美成人欧美edvon| 亚洲国产裸拍裸体视频在线观看乱了 | 欧美亚洲日本一区| 亚洲精品日韩一| 欧美在线视频不卡| 亚洲成人激情综合网| 欧美网站一区二区| 一区二区三区蜜桃| 欧美日本一道本在线视频| 视频精品一区二区| 精品美女一区二区| 国产91富婆露脸刺激对白| 国产精品久久一级| 欧美乱妇20p| 精品在线你懂的| 国产精品久久久一本精品| 在线观看91视频| 久久国产精品99久久久久久老狼 | 欧美v日韩v国产v| 成人免费观看视频| 午夜精品123| 专区另类欧美日韩| 欧美久久免费观看| youjizz国产精品| 久久精品国产在热久久| 一区二区在线免费| 日韩亚洲欧美中文三级| 美女一区二区久久| 欧美性感一类影片在线播放| 奇米色一区二区三区四区| 欧美激情中文字幕一区二区| 99re热这里只有精品免费视频| 日韩av在线播放中文字幕| 日韩一区欧美小说| 久久久久国产一区二区三区四区 | 青娱乐精品在线视频| 欧美激情中文字幕一区二区| 在线观看91av| 色综合天天综合在线视频| 亚洲成人激情自拍| 一区二区三区久久| 亚洲视频小说图片| 中文字幕在线观看不卡视频| 久久亚洲捆绑美女| 日韩欧美三级在线| 欧美一区二区在线观看| 91精品国产品国语在线不卡| 欧美精品九九99久久| 欧美在线你懂得| 久久综合久久久久88| 日韩精品一区在线观看| 精品毛片乱码1区2区3区| 久久夜色精品国产欧美乱极品| 日韩精品一区二区三区蜜臀 | 国产大陆精品国产| 成人97人人超碰人人99| 欧美亚日韩国产aⅴ精品中极品| 欧美图区在线视频| 日韩精品在线看片z| 亚洲国产高清aⅴ视频| 亚洲一线二线三线久久久| 午夜av一区二区三区| 日韩国产欧美在线视频| 五月婷婷综合在线| 国产成人精品免费看| 在线视频综合导航| 欧美电影免费观看高清完整版在线| 久久伊人中文字幕| 亚洲精品亚洲人成人网| 日韩av在线免费观看不卡| 国产精品99久| 欧美电影影音先锋| 色8久久人人97超碰香蕉987| 国产精品夜夜嗨| 成人av在线观| 精品视频在线免费看| 国产天堂亚洲国产碰碰| 麻豆精品视频在线观看免费| 成人性色生活片免费看爆迷你毛片| 91色porny在线视频| 久久女同精品一区二区| 免费在线欧美视频| 欧美日韩一区二区三区免费看 | 色婷婷精品大在线视频| 国产视频一区二区三区在线观看 | 国产一区二区视频在线播放| 欧美日韩在线一区二区| 久久久久久一级片| 久久精品国产亚洲高清剧情介绍| 在线视频欧美区| 天天影视涩香欲综合网| 99免费精品在线| 亚洲欧洲在线观看av| www.成人网.com| 亚洲欧洲日韩在线| 国产福利精品一区| 国产人成亚洲第一网站在线播放| 韩国v欧美v亚洲v日本v| 久久精品人人做人人综合| 国产乱人伦偷精品视频不卡| 欧美r级在线观看| 国产精品一二三四区| 国产精品午夜电影| 成人一区二区视频| 亚洲精品国产a| 欧美偷拍一区二区| 国产在线精品一区二区三区不卡 | 五月天激情综合| 欧美一级片在线观看| 奇米在线7777在线精品|