W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
使用 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)用了。
Fig 可用的命令有:
我們試著讓一個基本的 Python web 應(yīng)用運行在 Fig 上。這個實驗假設(shè)你已經(jīng)知道一些 Python 知識,如果你不熟悉,但清楚概念上的東西也是沒有問題的。
為你的項目創(chuàng)建一個目錄
$ mkdir figtest
$ cd figtest
進(jìn)入目錄,創(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ù):
Dockerfile
創(chuàng)建。并且說明了在容器里面執(zhí)行python app.py
命令 ,轉(zhuǎn)發(fā)在容器里開放的 5000 端口到本地主機(jī)的 5000 端口,連接 Redis 服務(wù),并且掛載當(dāng)前目錄到容器里面,這樣我們就可以不用重建鏡像也能直接使用代碼。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 守護(hù)進(jìn)程里面監(jiān)聽著 5000 端口了(如果你有使用 boot2docker ,執(zhí)行 boot2docker ip
,就會看到它的地址)。
如果你想要在后臺運行你的服務(wù),可以在執(zhí)行 fig up
命令的時候添加 -d
參數(shù),然后使用 fig ps
查看有什么進(jìn)程在運行。
$ 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)境變量的更多細(xì)節(jié)。如果你有任何想法或建議,可以在 GitHub 上提出。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: