国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

在 Docker 中構建基于 Puppet 的應用

NoraXie / 2191人閱讀

摘要:通過創建一個的來構建一個應用程序是非常容易的。我們將使用這個鏡像來作為我們新的應用程序鏡像的基礎鏡像。現在我們需要為我們的應用程序鏡像創建另外一個。你可以重復這個步驟安裝任何基于的應用或者是基礎設施。

通過創建一個 Docker 的 Dockerfile 來構建一個應用程序是非常容易的。但是如果你已經有了大量的 Puppet 模塊(或者是 Chef cookbooks),你想把這些模塊用于構建你的應用程序,你應該怎么做?我們將看到利用 Dockerfile1 構建是多么的容易。

我們首先要構建一個 Docker 應用鏡像來安裝 Puppet。我們將把 Tim Sharpe 的一個非常酷的工具 Librarian-Puppet 添加到鏡像中。Librarian-Puppet 是一個 Puppet 模塊打包工具,你可以使用它從 GitHub 或者是 Puppet Labs Forge 選擇和安裝模塊。

讓我們創建一個 Dockerfile 來構建我們的 Puppet2 鏡像。

FROM ubuntu:12.10
MAINTAINER James Turnbull "james@lovedthanlost.net"

RUN apt-get -y update
RUN apt-get -y install rubygems 
RUN echo "gem: --no-ri --no-rdoc" > ~/.gemrc
RUN gem install puppet librarian-puppet

這個 Dockerfile 使用基于 Ubuntu 的鏡像,然后通過 RubyGems 來安裝 Puppet 和 Librarian-Puppet。

我們運行如下命令來構建這個鏡像:

$ sudo docker build -t="jamtur01/puppetbase" .

我們已經構建了一個名為 jamtur01/puppetbase 的新鏡像。我們將使用這個鏡像來作為我們新的應用程序鏡像的基礎鏡像。

下一步我們需要創建一個 Puppetfile, Librarian-Puppet 使用它來安裝需要的 Puppet 模塊。如下例,我們將安裝一個 Nginx 基礎服務。

mod "nginx",
  :git => "https://github.com/jfryman/puppet-nginx"

這個 Puppetfile 告訴 Librarian-Puppet 從 GitHub 中安裝 puppet-nginx 模塊。

現在我們需要為我們的應用程序鏡像創建另外一個 Dockerfile

FROM jamtur01/puppetbase
MAINTAINER James Turnbull "james@lovedthanlost.net"

RUN apt-get -y -q install wget git-core
ADD Puppetfile /
RUN librarian-puppet install
RUN puppet apply --modulepath=/modules -e "class { "nginx": }"
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx"]

這個 Dockerfile 使用我們剛剛構建的 jamtur01/puppetbase 鏡像,它我們本地的 Puppetfile 添加到鏡像的 root 目錄,然后運行 librarian-puppet install 來安裝要求的模塊(默認安裝在 /modules 目錄)。

然后我們通過 puppet-nginx 模塊使用 puppet apply 命令來安裝 Nginx 。這個在本地主機上運行 Puppet (i.e. 不需要安裝一個 Puppet 客戶端)。

在這個鏡像中,我們安裝了 Nginx 。我們還可以安裝虛擬主機或者是一個 Web 應用程序或者是 Nginx 模塊支持的任何東西。

我們現在可以像這樣構建我們的應用程序鏡像:

$ sudo docker build -t="jamtur01/nginx" .

最后通過它啟動一個容器:

$ sudo docker run -P -d jamtur01/nginx
fd461a1418c6

我們已經啟動了一個 ID 為 fd461a1418c6 的容器,在后臺運行,并且告訴它暴露任意的端口,我們的例子中,我們在 Dockerfile 中暴露了 80 端口,讓我們檢查容器,并且看看其在 映射的 nginx 端口是。

$ sudo docker port fd461a1418c6 80
0.0.0.0:49158

現在讓我們訪問端口 49158,看 nginx 是否正在運行。

歐耶!我們已經通過 Puppet 安裝了 Nginx。你可以重復這個步驟安裝任何基于 Puppet 的應用或者是基礎設施3

  

注:本文的原作者為 JAMES TURNBULL,本文的原文地址為 Building Puppet-based applications inside Docker


This is a somewhat short-term hacky implementation. When Docker is more pluggable this will be a lot easier. Expect to see that sort of plugin support in the 1.0 release??

We could easy do the same thing with Chef too??

For other thoughts on Docker and CM see this??

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/28095.html

相關文章

  • docker命令

    摘要:,自動構建,表示這個鏡像由的自動構建流程構建的。保存的目錄稱為上下文,會在構建鏡像時將構建的上下文和該上下文的文件和目錄上傳到守護進程。可用略過緩存查看鏡像的每一層參考第一本書 docker入門 主要是docker使用命令 docker守護進程 修改守護進程的網絡 sudo docker daemon -H tcp://0.0.0.0:2375 這條命令將docker守護進程 //...

    Tonny 評論0 收藏0
  • Docker學習之路(五)鏡像基本操作

    摘要:一個鏡像可以放到另一個京廣線的頂部,位于下面的鏡像稱為父鏡像,最底部的稱為基礎鏡像。鏡像是基于聯合文件系統的一種層式的結構,由一系列指令一步步構建處理。拉取鏡像使用命令啟動一個鏡像時,會檢查本地是否存在該鏡像。 什么是鏡像 Docker鏡像時由文件系統疊加而成,最底端是一個引導文件系統,即bootfs,這很像典型的Linux/Unix的引導文件系統。Docker用戶幾乎永遠不會和引導...

    yunhao 評論0 收藏0
  • 如何選擇云計算基礎設施自動化最佳工具?

    摘要:企業將業務遷移到云平臺的最大好處之一是可以降低工作和運營成本,其中一個最重要的因素是云計算基礎設施的自動化和配置。幸運的是,有許多云計算基礎設施自動化工具可用于幫助加快流程。企業需要深入了解將工作負載遷移到公共云的正確步驟,并因此降低成本。云遷移不會自行發生,在遷移項目成功之前并不能完成工作和任務。企業將業務遷移到云平臺的最大好處之一是可以降低工作和運營成本,其中一個最重要的因素是云計算基礎...

    KitorinZero 評論0 收藏0

發表評論

0條評論

NoraXie

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<