鍍金池/ 教程/ Linux/ 簡介
利用數(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

簡介

快速搭建基于 Docker 的隔離開發(fā)環(huán)境

使用 Dockerfile 文件指定你的應(yīng)用環(huán)境,讓它能在任意地方復(fù)制使用:

FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt

fig.yml 文件中指定應(yīng)用使用的不同服務(wù),讓它們能夠在一個獨立的環(huán)境中一起運行:

web:
  build: .
  command: python app.py
  links:
   - db
  ports:
   - "8000:8000"
db:
  image: postgres

注意不需要再額外安裝 Postgres 了!

接著執(zhí)行命令 fig up ,然后 Fig 就會啟動并運行你的應(yīng)用了。

http://wiki.jikexueyuan.com/project/docker-technology-and-combat/images/fig-example-large.gif" alt="Docker" />

Fig 可用的命令有:

  • 啟動、停止,和重建服務(wù)
  • 查看服務(wù)的運行狀態(tài)
  • 查看運行中的服務(wù)的輸入日志
  • 對服務(wù)發(fā)送命令

快速上手

我們試著讓一個基本的 Python web 應(yīng)用運行在 Fig 上。這個實驗假設(shè)你已經(jīng)知道一些 Python 知識,如果你不熟悉,但清楚概念上的東西也是沒有問題的。

首先,安裝 Docker 和 Fig

為你的項目創(chuàng)建一個目錄

$ mkdir figtest
$ cd figtest

進入目錄,創(chuàng)建 app.py,這是一個能夠讓 Redis 上的一個值自增的簡單 web 應(yīng)用,基于 Flask 框架。

from flask import Flask
from redis import Redis
import os
app = Flask(__name__)
redis = Redis(host='redis', port=6379)

@app.route('/')
def hello():
    redis.incr('hits')
    return 'Hello World! I have been seen %s times.' % redis.get('hits')

if __name__ == "__main__":
    app.run(host="0.0.0.0", debug=True)

requirements.txt 文件中指定應(yīng)用的 Python 依賴包。

flask
redis

下一步我們要創(chuàng)建一個包含應(yīng)用所有依賴的 Docker 鏡像,這里將闡述怎么通過 Dockerfile 文件來創(chuàng)建。

FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt

以上的內(nèi)容首先告訴 Docker 在容器里面安裝 Python ,代碼的路徑還有Python 依賴包。關(guān)于 Dockerfile 的更多信息可以查看鏡像創(chuàng)建和 Dockerfile 使用。

接著我們通過 fig.yml 文件指定一系列的服務(wù):

web:
  build: .
  command: python app.py
  ports:
   - "5000:5000"
  volumes:
   - .:/code
  links:
   - redis
redis:
  image: redis

這里指定了兩個服務(wù):

  • web 服務(wù),通過當前目錄的 Dockerfile 創(chuàng)建。并且說明了在容器里面執(zhí)行python app.py 命令 ,轉(zhuǎn)發(fā)在容器里開放的 5000 端口到本地主機的 5000 端口,連接 Redis 服務(wù),并且掛載當前目錄到容器里面,這樣我們就可以不用重建鏡像也能直接使用代碼。
  • redis 服務(wù),我們使用公用鏡像 redis。
  • 現(xiàn)在如果執(zhí)行 fig up 命令 ,它就會拉取 redis 鏡像,啟動所有的服務(wù)。

$ fig up
Pulling image redis...
Building web...
Starting figtest_redis_1...
Starting figtest_web_1...
redis_1 | [8] 02 Jan 18:43:35.576 # Server started, Redis version 2.8.3
web_1   |  * Running on http://0.0.0.0:5000/

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

如果你想要在后臺運行你的服務(wù),可以在執(zhí)行 fig up 命令的時候添加 -d 參數(shù),然后使用 fig ps 查看有什么進程在運行。

$ fig up -d
Starting figtest_redis_1...
Starting figtest_web_1...
$ fig ps
        Name                 Command            State       Ports
-------------------------------------------------------------------
figtest_redis_1   /usr/local/bin/run         Up
figtest_web_1     /bin/sh -c python app.py   Up      5000->5000/tcp

fig run 指令可以幫你向服務(wù)發(fā)送命令。例如:查看 web 服務(wù)可以獲取到的環(huán)境變量:

$ fig run web env

執(zhí)行幫助命令 fig --help 查看其它可用的參數(shù)。

假設(shè)你使用了 fig up -d 啟動 Fig,可以通過以下命令停止你的服務(wù):

$ fig stop

以上內(nèi)容或多或少的講述了如何使用Fig 。通過查看下面的引用章節(jié)可以了解到關(guān)于命令、配置和環(huán)境變量的更多細節(jié)。如果你有任何想法或建議,可以在 GitHub 上提出。

上一篇:服務(wù)端的防護下一篇:移除