在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ 實戰(zhàn) Rail
利用數(shù)據(jù)卷容器來備份、恢復(fù)、遷移數(shù)據(jù)卷
Docker 網(wǎng)絡(luò)實現(xiàn)
實戰(zhàn) Django
YAML 模板文件
名字空間
控制組
編輯網(wǎng)絡(luò)配置文件
列出
進入容器
Compose 命令說明
創(chuàng)建 Tomcat/Weblogic 集群
守護態(tài)運行
快速配置指南
其它安全特性
示例:創(chuàng)建一個點到點連接
CentOS 系列安裝 Docker
數(shù)據(jù)卷容器
鏡像
指令
創(chuàng)建鏡像
Docker 容器
創(chuàng)建鏡像
常用倉庫
總結(jié)
什么是 Docker
存出和載入鏡像
使用
獲取鏡像
容器互聯(lián)
為什么要使用 Docker?
使用 Wordpress 入門 Fig
啟動
容器訪問控制
私有倉庫
使用
基本架構(gòu)
自定義網(wǎng)橋
環(huán)境變量參考
實戰(zhàn) Rail
服務(wù)端的防護
刪除
鏡像的實現(xiàn)原理
多臺物理主機之間的容器互聯(lián)
Docker 倉庫
簡介
數(shù)據(jù)卷
命令參考
使用 Supervisor 來管理進程
移除
基本結(jié)構(gòu)
命令查詢
終止容器
聯(lián)合文件系統(tǒng)
安裝
簡介
配置 DNS
內(nèi)核能力機制
導(dǎo)出和導(dǎo)入容器
配置 docker0 網(wǎng)橋
倉庫配置文件
內(nèi)核名字空間
標準化開發(fā)測試和生產(chǎn)環(huán)境
外部訪問容器
fig.yml 參考
Ubuntu 系列安裝 Docker
有用資源
安裝
端口映射實現(xiàn)
安裝 Fig
工具和示例
簡介
控制組
容器格式
Docker Hub

實戰(zhàn) Rail

我們現(xiàn)在將使用 Fig 配置并運行一個 Rails/PostgreSQL 應(yīng)用。在開始之前,先確保 Fig 已經(jīng) 安裝。

在一切工作開始前,需要先設(shè)置好三個必要的文件。
首先,因為應(yīng)用將要運行在一個滿足所有環(huán)境依賴的 Docker 容器里面,那么我們可以通過編輯 Dockerfile 文件來指定 Docker 容器要安裝內(nèi)容。內(nèi)容如下:

FROM ruby
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev
RUN mkdir /myapp
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
RUN bundle install
ADD . /myapp

以上內(nèi)容指定應(yīng)用將使用安裝了 Ruby、Bundler 以及其依賴件的鏡像。更多關(guān)于如何編寫 Dockerfile 文件的信息可以查看鏡像創(chuàng)建和 Dockerfile 使用。 下一步,我們需要一個引導(dǎo)加載 Rails 的文件 Gemfile 。 等一會兒它還會被 rails new 命令覆蓋重寫。

source 'https://rubygems.org'
gem 'rails', '4.0.2'

最后,fig.yml 文件才是最神奇的地方。 fig.yml 文件將把所有的東西關(guān)聯(lián)起來。它描述了應(yīng)用的構(gòu)成(一個 web 服務(wù)和一個數(shù)據(jù)庫)、每個鏡像的來源(數(shù)據(jù)庫運行在使用預(yù)定義的 PostgreSQL 鏡像,web 應(yīng)用側(cè)將從本地目錄創(chuàng)建)、鏡像之間的連接,以及服務(wù)開放的端口。

db:
  image: postgres
  ports:
    - "5432"
web:
  build: .
  command: bundle exec rackup -p 3000
  volumes:
    - .:/myapp
  ports:
    - "3000:3000"
  links:
    - db

所有文件就緒后,我們就可以通過使用 fig run 命令生成應(yīng)用的骨架了。

$ fig run web rails new . --force --database=postgresql --skip-bundle

Fig 會先使用 Dockerfile 為 web 服務(wù)創(chuàng)建一個鏡像,接著使用這個鏡像在容器里運行 rails new 和它之后的命令。一旦這個命令運行完后,應(yīng)該就可以看一個嶄新的應(yīng)用已經(jīng)生成了。

$ ls
Dockerfile   app          fig.yml      tmp
Gemfile      bin          lib          vendor
Gemfile.lock config       log
README.rdoc  config.ru    public
Rakefile     db           test

在新的 Gemfile 文件去掉加載 therubyracer 的行的注釋,這樣我們便可以使用 Javascript 運行環(huán)境:

gem 'therubyracer', platforms: :ruby

現(xiàn)在我們已經(jīng)有一個新的 Gemfile 文件,需要再重新創(chuàng)建鏡像。(這個會步驟會改變 Dockerfile 文件本身,僅僅需要重建一次)。

$ fig build

應(yīng)用現(xiàn)在就可以啟動了,但配置還未完成。Rails 默認讀取的數(shù)據(jù)庫目標是 localhost ,我們需要手動指定容器的 db 。同樣的,還需要把用戶名修改成和 postgres 鏡像預(yù)定的一致。 打開最新生成的 database.yml 文件。用以下內(nèi)容替換:

development: &default
  adapter: postgresql
  encoding: unicode
  database: postgres
  pool: 5
  username: postgres
  password:
  host: db

test:
  <<: *default
  database: myapp_test

現(xiàn)在就可以啟動應(yīng)用了。

$ fig up

如果一切正常,你應(yīng)該可以看到 PostgreSQL 的輸出,幾秒后可以看到這樣的重復(fù)信息:

myapp_web_1 | [2014-01-17 17:16:29] INFO  WEBrick 1.3.1
myapp_web_1 | [2014-01-17 17:16:29] INFO  ruby 2.0.0 (2013-11-22) [x86_64-linux-gnu]
myapp_web_1 | [2014-01-17 17:16:29] INFO  WEBrick::HTTPServer#start: pid=1 port=3000

最后, 我們需要做的是創(chuàng)建數(shù)據(jù)庫,打開另一個終端,運行:

$ fig run web rake db:create

這個 web 應(yīng)用已經(jīng)開始在你的 docker 守護進程里面監(jiān)聽著 3000 端口了(如果你有使用 boot2docker ,執(zhí)行 boot2docker ip ,就會看到它的地址)。

http://wiki.jikexueyuan.com/project/docker-technology-and-combat/images/fig-rails-screenshot.png" alt="" />

上一篇:簡介下一篇:總結(jié)