4-docker-compose介绍(部署flask案例、yaml文件、启动)、新建flask项目、编写Dockerfile(用于构建flask项目的镜像)、

1 docker-compose介绍
2 docker-compose部署flask案例
2.1 新建flask项目 app.py
2.2 编写Dockerfile–》用于构建flask项目的镜像
2.3 编写docker-compose的yaml文件 docker-compose.yml
2.4 docker-compose启动

1 docker-compose介绍

1 介绍
"""
使用了docker 面临一个比较大的问题,如果一个djagno项目,使用mysql,redis,
不要一次性把所有服务都放到一个容器中,每个服务一个容器,批量的管理多个容器,比较难以操作,
于是有了docker-compose
"""2 批量管理,操作docker容器的---》只在单机3 Docker Compose是一个能一次性定义和管理多个Docker容器的工具,单机容器编排【定义和管理】4 多机容器编排
docker swarm:用的不多k8s5 Docker Compose概念Compose中定义和启动的每一个容器都相当于一个服务(service)Compose中能定义和启动多个服务,且它们之间通常具有协同关系管理方式:使用YAML文件来配置我们应用程序的服务。使用单个命令(docker-compose up),就可以创建并启动配置文件中配置的所有服务。6 安装docker-compose (可执行文件,放在了github上,下载下来即可,速度很慢)
https://github.com/docker/compose/releaseswget https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-linux-x86_64# 想在任意路径下执行docker-compose都有相应----》需要把可执行文件放到环境变量所在的目录下
cp ./docker-compose-linux-x86_64 /usr/local/bin/docker-compose 
chmod +x /usr/local/bin/docker-compose# rwx  rw_  _ _ _421011
属主   属组  所有人
chmod 777 文件名
chmod +x # 以后在任意位置敲docker-compose都可以7 常用命令
- 启动管理容器docker-compose up  # 会自动搜索当前路径下的 docker-compose.yml文件docker-compose -f 指定文件 updocker-compose up -d  # 后台执行,一般我们看日志输出,不用这个docker-compose stop  # 停止,不会删除容器和镜像docker-compose down # 停止,并删除关联的容器docker-compose start  # 启动yml文件管理的容器docker-compose ps    # 正在运行的容器docker-compose images # docker-compose管理的镜像docker-compose exec yml文件中写的service /bin/bash  # 进入到容器内docker-compose up -d --build # 启动容器但是重新构建镜像,基于重新构建的镜像启动#####  如果你没装docker#######
1 配置yum仓库
sudo yum install -y yum-utilssudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo2 下载 docker-ce  docker-ce-cli docker-compose-plugin
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2 docker-compose部署flask案例

-flask 项目,使用redis服务---2个容器-flask 项目容器-redis容器

2.1 新建flask项目 app.py

from flask import Flask
from redis import Redis
import osapp = Flask(__name__)
# redis = Redis(host=os.environ.get('REDIS_HOST', '127.0.0.1'), port=6379)
redis = Redis(host='redis', port=6379) # 容器的主机名---》flask容器和redis容器是能ping通的,可以通过ip ping 也可以通过主机名ping@app.route('/')
def hello(): redis.incr('hits')return '你好! 查看 %s 次\n' % (redis.get('hits'))if __name__ == "__main__":app.run(host="0.0.0.0", port=5000, debug=True)

2.2 编写Dockerfile–》用于构建flask项目的镜像

FROM python:3.10
WORKDIR /app
COPY . /app
RUN pip install flask redis -i https://pypi.tuna.tsinghua.edu.cn/simple
EXPOSE 5000
CMD [ "python", "app.py" ]# 构建出镜像---》一会统一使用 docker-compose构建

2.3 编写docker-compose的yaml文件 docker-compose.yml

version: "3"
services:redis:image: redisweb:build:context: .dockerfile: Dockerfileports:- 8080:5000environment:REDIS_HOST: redis

2.4 docker-compose启动

-如果redis服务的名字叫redis,我在web服务中(容器中),根据redis名字就能拿到容器ping redis# 进入到了web,ping redis# 安装ping命令,apt-get updateapt-get install inetutils-pingping redis-一键部署:redis,和flask ,每个都在一个容器中
docker-compose up

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/181032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器运行train.py报错解决

在服务器配置完虚拟环境以及安装完各种所需库后&#xff0c;发现报错Traceback (most recent call last): File "/root/yolov5-master/yolov5-master/train.py", line 48, in <module> import val as validate # for end-of-epoch mAP File "/root/yolov5…

在Springboot中操作Redis——五大数据类型

在Java中操作Redis Redis的Java客户端 前面我们讲解了Redis的常用命令&#xff0c;这些命令是我们操作Redis的基础&#xff0c;那么我们在java程序中应该如何操作Redis呢&#xff1f;这就需要使用Redis的Java客户端&#xff0c;就如同我们使用JDBC操作MySQL数据库一样。 Red…

电气制图用什么软件?CAD和Eplan哪个更胜一筹?

身为电气工程师&#xff0c;每天打交道最多的可能不是自家对象&#xff0c;而是时时刻刻攥在手里的电气图。目前市面上制作电路图的软件形形色色&#xff0c;但是AutoCAD Electrical和Eplan是目前大家使用率最高的两款电气制图软件。 EPLAN是一款专业的电气设计软件&#xff0…

UTONMOS:元宇宙时代已经来临

当我们站在这个新的人工智能时代的十字路口&#xff0c;不可避免地要面对一个问题&#xff1a;在这个技术革新的大潮中&#xff0c;区块链技术还有没有生存和发展的空间&#xff1f;本文将深入探讨这个问题&#xff0c;分析区块链在人工智能时代的优势、挑战以及未来的可能性。…

项目九 使用gcc和make调试程序

项目九 使用gcc和make调试程序 #职业能力目标和要求 1&#xff0c;理解程序调试。 2&#xff0c;掌握利用gcc进行调试的方法。 3&#xff0c;掌握使用make编译的方法。9.1 了解程序的调试 9.1.1 编译时错误 主要是语法错。 9.1.2 运行时错误 编译器检查不出这类错误&#x…

【算法刷题】Day7

文章目录 283. 移动零1089. 复写零 283. 移动零 原题链接 看到题目&#xff0c;首先看一下题干的要求&#xff0c;是在原数组内进行操作&#xff0c;平切保持非零元素的相对顺序 这个时候我们看到了示例一&#xff1a; [ 0, 1, 0, 3,12 ] 这个时候输出成为了 [ 1, 3, 12, 0, …

ground truth 在深度学习任务中代表的是什么意思?

1、概念 在深度学习领域&#xff0c;ground truth (中文意思是“地面真实值”或“基准真实值”&#xff0c;简单理解就是真实值) 是指用于训练和评估模型的准确标签或数据。它是机器学习算法的参考标准&#xff0c;用于衡量模型的性的和判断模型的准确性&#xff0c;本文将介绍…

泗博Modbus转Profinet网关TS-180对水表流量的监控应用

应用场景&#xff1a; 陕西某工程技术有限公司在一民生工程项目中&#xff0c;需要对公园直饮水进行净化保证其水质。直饮水净化装置需根据用水量不定期的维护&#xff0c;通过统计各个净化装置净化的直饮水的流量&#xff0c;来实现提前维护目的。 应用痛点&#xff1a; 项目…

dsp cmd文件详解

DSP学习&#xff08;8&#xff09;—— linker.cmd文件解析-CSDN博客

4/150:寻找两个正序数组的中位数⭐

题目&#xff1a;寻找两个正序数组的中位数 给定两个大小分别为 m 和 n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (mn)) 。 题解1&#xff1a;暴力 暴力思路简介&#xff0c;…

基于ArcGIS Pro、R、INVEST等多技术融合下生态系统服务权衡与协同动态分析实践应用

生态系统服务是指生态系统所形成的用于维持人类赖以生存和发展的自然环境条件与效用&#xff0c;是人类直接或间接从生态系统中得到的各种惠益。联合国千年生态系统评估&#xff08;Millennium ecosystem assessment&#xff0c;MA&#xff09;提出生态系统服务包括供给、调节、…

项目中的svg图标的封装与使用

1.安装 npm install vite-plugin-svg-icons -D2.在vite.config.ts中配置 **所有的svg图标都必须放在assets/icons // 引入svg import { createSvgIconsPlugin } from vite-plugin-svg-iconsexport default defineConfig({plugins: [vue(),createSvgIconsPlugin({iconDirs: [p…

项目:基于UDP的网络聊天室

项目需求&#xff1a; 1.如果有用户登录&#xff0c;其他用户可以收到这个人的登录信息 2.如果有人发送信息&#xff0c;其他用户可以收到这个人的群聊信息 3.如果有人下线&#xff0c;其他用户可以收到这个人的下线信息 4.服务器可以发送系统信息 服务器代码&#xff1a; #i…

【C 语言经典100例】C 练习实例14 - 将一个正整数分解质因数

题目&#xff1a;将一个正整数分解质因数。例如&#xff1a;输入90,打印出90233*5。 程序分析&#xff1a;对n进行分解质因数&#xff0c;应先找到一个最小的质数k&#xff0c;然后按下述步骤完成&#xff1a; (1)如果这个质数恰等于&#xff08;小于的时候&#xff0c;继续执…

《数据结构与测绘程序设计》试题详细解析(仅供参考)

一. 选择题&#xff08;每空2分&#xff0c;本题共30分&#xff09; &#xff08;1&#xff09;在一个单链表中&#xff0c;已知q所指结点是p所指结点的前驱结点&#xff0c;若在q和p之间插入结点s&#xff0c;则执行( B )。 A. s->nextp->next; p->nexts; …

Vue 打包上线后的缓存问题

问题描述 在使用vue脚手架搭建前端工程时&#xff0c;经常会遇到打包上线后的缓存问题。具体表现为&#xff0c;当程序版本升级时&#xff0c;用户仍然访问到旧版本的页面。许多开发者会直接在index.html中加入类似以下代码来解决缓存问题&#xff1a; <meta http-equiv&q…

Linux配置SFTP用户的详细过程

0. 背景 Linux机器上已有路径/data/tomcat/apache-tomcat-8.5.96/webapps/webroot,需要在该路径之下配置一个目录对外暴露给业务人员使用。业务人员使用sftp协议上传文件。 下面是相关配置&#xff1a; SFTP 用户名&#xff1a;iios SFTP主目录&#xff1a;/data/tomcat/apa…

用人部门职位说明书模板

用人部门职位说明书模板 岗位名称 岗位职责&#xff1a; 1. 2. 3. 4. 任职要求&#xff1a; 1. 2. 3. 4. 岗位名称 岗位职责&#xff1a; 1. 2. 3. 4. 任职要求&#xff1a; 1. 2. 3. 4. 【例如】 售前咨询顾问 岗位职责&#xff1a; 1、负责电子政务…

王者荣耀游戏制作

1.创建所需要的包 2.创建怪物类 bear package beast;import wangzherogyao.GameFrame;public class Bear extends Beast {public Bear(int x, int y, GameFrame gameFrame) {super(x, y, gameFrame);setImg("img/bear.jpg");width 85;height 112;setDis(65);}} b…

Encoder、Decoder和Encoder-Decoder

首先LLM有3种架构&#xff1a;Encoder-only、Decoder-only、encode-decode 整体情况 1、Encoder将可变长度的输入序列编码成一个固定长度的向量&#xff0c;比如在bert中应用的encoder&#xff0c;其实是输入和输出是等长的向量。通常情况下&#xff0c;encoder是用来提取特征…