由于以上代码用到了 app.py 和requirements.txt 两个文件,接下来我们来进一步完善,requirements.txt 内容如下:
Flask Redis
app.py 内容如下:
from flask import Flask from redis import Redis, RedisError import os import socket # Connect to Redis redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2) app = Flask(__name__) @app.route("/") def hello(): try: visits = redis.incr("counter") except RedisError: visits = "cannot connect to Redis, counter disabled" html = "

Hello {name}!

" \ "Hostname:{hostname}" \ "Visits:{visits}" return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits) if __name__ == "__main__": app.run(host='0.0.0.0', port=80)
我们不探讨以上代码具体的实现,其实简单来看我们可以知道这是用 python 写的一个简单的 web 服务器。其中需要注意的地方是由于没有运行 Redis (我们只安装了 Python 库,而不是 Redis 本身),所以在运行镜像时应该期望在这部分产生错误消息(见下文图)。到这里,当前目录应该是这样的:
ls # 输出 Dockerfile app.py requirements.txt
接着,我们在当前目录开始构建这个镜像吧。
# -t 可以给这个镜像取一个名字(tag) docker build -t friendlyhello .
以上代码用到了docker build命令,其格式如下:
docker build [选项]