分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

(十)Docker Compose安装与创建Flask web应用

发布时间:2023-09-06 01:54责任编辑:傅花花关键词:web应用Docker

Docker Compose 是 Docker 官方编排(Orchestration)项目之一, 负责快速在集群中部署分布式应用。

Dockerfile 可以让用户管理一个单独的应用容器;而 Compose 则允许用户在一个模板(YAML 格式)中定义一组相关联的应用容器(被称为一个 project,即项目),例如一个Web服务容器再加上后端的数据库服务容器等。

安装


该项目由 Python 编写,实际上调用了 Docker 提供的 API 来实现。 通过pip安装。

$ python3 -m pip install docker-compose

安装成功后,可以查看docker-compose命令的用法。

$ docker-composeDefine and run multi-container applications with Docker.Usage: ?docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...] ?docker-compose -h|--helpOptions: ?-f, --file FILE ????????????Specify an alternate compose file (default: docker-compose.yml) ?-p, --project-name NAME ????Specify an alternate project name (default: directory name) ?--verbose ??????????????????Show more output ?--no-ansi ??????????????????Do not print ANSI control characters ?-v, --version ??????????????Print version and exit ?-H, --host HOST ????????????Daemon socket to connect to ?……

创建 Flask 应用


创建使用Flask web应用,并将数值记入Redis。

1、创建 Web 应用

创建一个Flask web 应用,app.py 文件:

from flask import Flaskfrom redis import Redisapp = 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, 内容如下:

flaskredis
2、创建 Dockerfile

在同一目录下,创建 Dockerfile

FROM python:3.5ADD . /codeWORKDIR /codeRUN python3 -m pip install -r requirements.txtCMD python3 app.py

对上面的Dockerfile做一下简单说明:

  • 容器使用Python 3.5的镜像
  • 将当前目录下文件拷贝到容器内/code
  • 指定工作目录为/code
  • 安装python需要的库:flask, redis
  • 容器执行命令 python3 app.py
3、创建编排脚本

在同一目录下,创建 docker-compose.yml

version: ‘1‘services: ?web: ???build: . ???ports: ????- "5000:5000" ???volumes: ????- .:/code ???depends_on: ????- redis ?redis: ???image: redis

对上面的编排脚本做一下简单说明:

  • 这个应用定义了两个服务:web, redis
  • web容器通过当前路径下的Dockerfile生成
  • web容器内的5000端口映射到主机的5000端口
  • 将当前目录挂载到web容器内/code
  • web容器依赖于redis容器
  • redis容器从Docker Hub获取镜像

所有文件都已经准备就绪。

$ lsapp.py ?docker-compose.yml ?Dockerfile ?requirements.txt
4、启动应用

docker-compose执行编排脚本,分别制作和抓取web,redis镜像,启动容器。

$ sudo docker-compose up……redis_1 ?| 1:M 02 Feb 04:13:15.129 * Ready to accept connectionsweb_1 ???| ?* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)web_1 ???| ?* Restarting with statweb_1 ???| ?* Debugger is active!web_1 ???| ?* Debugger PIN: 170-376-971

整个过程会比较漫长。。。

5、访问应用

打开浏览器方位: http://0.0.0.0:5000/

效果如下:

(十)Docker Compose安装与创建Flask web应用

原文地址:https://www.cnblogs.com/jason89/p/9034125.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved