在实际的部署工作中,需要使用到多种服务,比如mysql、nginx等,那这么多镜像如何进行组合编排呢,这就是Docker-Compose需要解决的问题。Docker容器编排工具有:
Docker-Compose在windows和mac上,随着Docker安装就已经安装了。针对Linux,需要额外安装。官方安装教程为:https://docs.docker.com/compose/install/linux/#install-using-the-repository。
$ sudo apt-get update
# 安装最新版的docker-compose
$ sudo apt-get install docker-compose-plugin
# 安装指定版本的docker-compose(课程中的版本)
$ sudo apt install docker-compose-plugin=2.27.0-1~ubuntu.22.04~jammy
$ docker compose version
使用Docker-Compose编排容器时,可以将编排指令放到compose.yaml文件中。这里以构建一个构建Flask+Redis的服务的过程为例来讲解Docker-Compose的使用。
创建一个文件夹,叫做flask-web,并在里面创建一个app.py文件,然后填入以下代码:
import time
import redis
from flask import Flask
app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)
def get_hit_count():
retries = 5
while True:
try:
return cache.incr('hits')
except redis.exceptions.ConnectionError as exc:
if retries == 0:
raise exc
retries -= 1
time.sleep(0.5)
@app.route('/hit')
def hit():
count = get_hit_count()
return 'Hello World! I have been seen {} times.\n'.format(count)
@app.route("/")
def index():
return "<h1>Welcom to Flask App</h1>"
在flask-web文件夹中,创建requirements.txt文件。这个文件是用于记录当前项目依赖的第三方包文件,内容如下:
flask==3.0.3
redis==5.0.4