【从0开始配置前后端项目】——Docker环境配置
1. 准备一台纯净的服务器
镜像:CentOS 7.9 64位
CPU & 内存:2核2G
系统盘:60GB
峰值带宽:30Mbps
流量包:600GB / 600GB
2. 安装Docker
2.1 卸载旧的版本
$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
2.2 安装 Docker Engine-Community
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
使用以下命令来设置稳定的仓库。
$ sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
安装 Docker Engine-Community
$ sudo yum install docker-ce docker-ce-cli containerd.io
启动 Docker
$ sudo systemctl start docker
通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。
$ sudo docker run hello-world
安装成功!
3. docker 部署一个flask项目
需求:基于docker创建在ubuntu18.04系统上运行Flask网站
流程:
- 在centos7.9+安装docker
- 基于docker
- 获取基础镜像 ubuntu18.04
- 基于基础镜像自定义镜像【ubuntu+python环境+代码】
- 基于镜像创建容器+运行
- 获取镜像
docker search ubuntu
docker pull ubuntu:18.04
- 查看镜像
docker images
- 构建自定义镜像
在docker宿主机centos7.9创建2个文件:Dockerfile、app.py
#关Dockerfile
# Base images 基础镜像
FROM ubuntu:18.04#MAINTAINER 维护者信息
maintainer wzybmw888@163.com#RUN 执行以下命令
RUN apt update
RUN apt install python3 python3-pip -y
RUN pip3 install flask
RUN mkdir -p /data/www#拷贝文件至工作目录
COPY app.py /data/www/app.py#工作目录
WORKDIR /data/www/#EXPOSE映射端口
EXPOSE 80#容器启动时执行命令
CMD ["python3","app.py"]
app.py
from flask import Flaskapp = Flask(__name__)@app.route("/index")
def index():return "欢迎光临红浪漫"if __name__ =="__main__":app.run(host="0.0.0.0",port=8000)
命令构建自定义镜像(模板)
docker build -t wupeiqi/web1:1.0 . -f Dockerfile
基于镜像创建容器+运行
docker run -p 80:8000 -d --name v123 wupeiqi/web1:1.0
-p 表示外部端口80访问内部端口8000, -d表示后台运行
- 补充
docker ps -a 列出所有创建的容器
docker ps 列出所有运行的容器
docker stop xx1 xx2 停止正在运行的容器,xx1可以是容器id也可以是name
docker rm xx1 xx2 删除容器
- Dockerfile指令
删除停止运行的容器
docker rm $(docker ps -qa)
4. Docker运行mysql服务
原始视频链接 https://www.bilibili.com/video/BV1wQ4y1Y7SE?p=16&spm_id_from=pageDriver&vd_source=7ac19d5113271a9a076e045912769b5e
下载mysql8.x
docker pull mysql:8.0.22
1启动mysql 开放端口映射(3306),使用-e设置root用户密码,后台运行-d,指定名称–name,总是运行
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d --name mysql01 --restart=always mysql:8.0.22
新开一个窗口
- 持久化宿主机
-v /root/data:/var/lib/mysql
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d --name mysql01 --restart=always -v /root/data:/var/lib/mysql mysql:8.0.22
5. Docker运行redis服务
docker pull redis:5.0.12
docker run -p 6379:6379 -d redis:5.0.12
docker exec -it 70e bash
启动redis 映射端口(6379) 后台启动-d 指定名称–name 总是启动 --restart=always
docker run -p 6379:6379 -d --name redis01 --restart=always redis:5.0.12
redis支持内存数据持久化:
1.rdb持久化: 快照 Redis服务器将某一时刻数据以快照文件形式写入到磁盘
2.aof持久化: redis服务器将所有redis客户端的写操作以命今方式记录到日志文件中 AOF更加安全 everysec
3.docker 启动redis 映射端口(6379) 后台启动-d 指定名–ame 总是启动 --restart=alnays 运行redis如何开启持久化
注意: 只要开启了持久化,将持久化文件生成容器中/data/目录中
docker run --name redis01 -d -p 6379:6379 --restart=always redis:5.0.12 redis-server --appendonly yes
4.docker启动redis 开放口 后台启动 指定名 总是启动 开启持化 映射数据文件外部
docker run --name redis01 -d -p 6379:6379 --restart=always -v /root/redisdata:/data redis:5.0.12 redis-server --appendonly yes
6. Docker 配置Nginx服务
https://www.jianshu.com/p/f2c6ad35fbb0
7. Docker Compose
sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose
#启动项目
docker-compose
【-f docker-compose.yml的路径】
【-d 】(后台启动)up#关闭用docker-compose启动的所有容器
docker-compose
【-f docker-compose.yml的路径】
down
docker-compose文件模板
#docker-compose的版本
version: "3.8"
#一组容器
services:#容器(自定义),默认生成的容器名为:项目名(docker-compose.yml所在目录的目录名)_容器_序号。container1:#镜像image: image1#通过Dockerfile构建镜像然后运行build: /dir/of/Dockerfile#容器名container_name: container-name #端口映射(可多个) 宿主主机端口:容器端口 ports:- 80:80#数据卷(可多个) 宿主主机文件(必须已存在):容器文件volumes:- /path/in/host:/path/in/container#环境变量(可多个)environment:- var=value#覆盖容器启动时执行的命令command: new-command#先启动这些,再启动本身.depends_on:- 服务1
相关文章:

【从0开始配置前后端项目】——Docker环境配置
1. 准备一台纯净的服务器 镜像:CentOS 7.9 64位 CPU & 内存:2核2G 系统盘:60GB 峰值带宽:30Mbps 流量包:600GB / 600GB 2. 安装Docker 2.1 卸载旧的版本 $ sudo yum remove docker \docker-client \docker-cl…...

R语言 一种功能强大的数据分析、统计建模 可视化 免费、开源且跨平台 的编程语言
R语言是一种广泛应用于数据分析、统计建模和可视化的编程语言。它由新西兰奥克兰大学的罗斯伊哈卡和罗伯特杰特曼开发,并于1993年首次发布。R语言是一个免费、开源且跨平台的语言,它在统计学和数据科学领域得到了广泛的应用。 R语言具有丰富的数据处理、…...

springmvc-JSR303进行服务端校验分组验证SpringMVC定义Restfull接口异常处理流程RestController异常处理
目录& 1. JSR303 2. JSR303中含有的注解 3. spring中使用JSR303进行服务端校验 3.1 导入依赖包 3.2 添加验证规则 3.3 执行校验 4. 分组验证 4.1 定义分组验证规则 4.2 验证时通过参数指定验证规则 4.3 验证信息的显示 5. SpringMVC定义Restfull接口 5.1 增加s…...

证件照换底色详细教程
说到证件照的底色更改,我想对大部分朋友来说是蛮头疼的事情,由于我们不论是在生活还是学习中,有时候总会要上传一些证件照,而当你手上有证件照准备上传时,发现底色不对,是不是很抓狂,现在&#…...
【ringbuff share mem】
ringbuff 和share mem 结合实现PV操作 参考链接 https://juejin.cn/post/7113550346835722276 https://zhuanlan.zhihu.com/p/147826545 代码如下: #include "rb.h"int g_shmid 0;shm_buff * create_shm(int *smid) {int id;shm_buff *share_mem NU…...

【Zookeeper专题】Zookeeper经典应用场景实战(一)
目录 前置知识课程内容一、Zookeeper Java客户端实战1.1 Zookeeper 原生Java客户端使用1.2 Curator开源客户端使用快速开始使用示例 二、Zookeeper在分布式命名服务中的实战2.1 分布式API目录2.2 分布式节点的命名2.3 分布式的ID生成器 三、zookeeper实现分布式队列3.1 设计思路…...

【数据库——MySQL】(15)存储过程、存储函数和事务处理习题及讲解
目录 1. 题目1.1 存储过程1.2 存储函数1.3 事务处理 2. 解答2.1 存储过程2.2 存储函数2.3 事务处理 1. 题目 1.1 存储过程 创建表 RandNumber :字段:id 自增长, data int; 创建存储过程向表中插入指定个数的随机数(1-…...

FFmpeg:打印音/视频信息(Meta信息)
多媒体文件基本概念 多媒体文件其实是个容器在容器里面有很多流(Stream/Track)每种流是由不同的编码器编码的从流中读出的数据称为包在一个包中包含着一个或多个帧 几个重要的结构体 AVFormatContextAVStreamAVPacket FFmpeg操作流数据的基本步骤 打印音/视频信息(Meta信息…...

1.Linux入门基本指令
个人主页:Lei宝啊 愿所有美好如期而遇 目录 01.ls指令 02.pwd指令 03.cd指令 04.touch指令 05.mkdir指令(重要) 06.rmdir&&rm指令(重要) 07.man指令(重要) 08.cp指令(重要) 09.mv指令(重要) 10.cat指令 nano指令 echo指令 输出重定向 追加重…...

2023腾讯云服务器优惠代金券领取、查询及使用说明
腾讯云代金券领取渠道有哪些?腾讯云官网可以领取、官方媒体账号可以领取代金券、完成任务可以领取代金券,大家也可以在腾讯云百科蹲守代金券,因为腾讯云代金券领取渠道比较分散,腾讯云百科txybk.com专注汇总优惠代金券领取页面&am…...

大华智慧园区管理平台任意密码读取漏洞 复现
文章目录 大华智慧园区管理平台任意密码读取漏洞 复现0x01 前言0x02 漏洞描述0x03 影响平台0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 大华智慧园区管理平台任意密码读取漏洞 复现 0x01 前言 免责声明:请勿利用文章内的相关技术从事非法测试&…...
【C++ 学习 ㉖】- 位图详解(哈希扩展)
目录 一、位图的概念 二、位图的实现 2.1 - bitset.h 2.2 - test.cpp 三、位图的应用 3.1 - 例题一 3.2 - 例题二 一、位图的概念 假设有这样一个需求:在 100 亿个整型数字中快速查询某个数是否存在其中,并假设是 32 位操作系统,4 GB…...

天启科技联创郭志强:趟遍教育行业信数化沟坎,创业智能赛道重塑行业生态
郭志强 天启科技联合创始人 近20年互联网、企业信息化、数字化实施、管理及培训经验。对于集团型企业及初创企业、传统企业及互联网企业的信息化、数字化转型有自己独到的见解和实操经验。具备跨区域、集团化信息规划、解决方案、系统架构及企业流程搭建、优化和技术团队管理能…...

Cuckoo沙箱各Ubuntu版本安装及使用
1.沙箱简介 1.1 沙箱 沙箱是一个虚拟系统程序,允许你在沙箱环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除。它创造了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。 在网络安全中ÿ…...
什么是mvvm模式,优点是什么
MVVM(Model-View-ViewModel)模式是一种设计模式。它是一种开发模式,旨在分离用户界面的开发和业务逻辑的开发。MVVM模式将应用程序分为三个部分: Model:它代表应用程序的数据模型和业务逻辑。 View:它代表…...

C/C++ 中的函数返回局部变量以及局部变量的地址?
C/C中,函数内部的一切变量(函数内部局部变量,形参)都是在其被调用时才被分配内存单元。形参和函数内部的局部变量的生命期和作用域都是在函数内部(static变量的生命期除外)。子函数运行结束时,所有局部变量的内存单元会被系统释放。在C中&…...

springboot和vue:七、mybatis/mybatisplus多表查询+分页查询
mybatisplus实际上只对单表查询做了增强(速度会更快),从传统的手写sql语句,自己做映射,变为封装好的QueryWrapper。 本篇文章的内容是有两张表,分别是用户表和订单表,在不直接在数据库做表连接的…...

【Leetcode】 51. N 皇后
按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。 每一种…...
Java数据库连接:JDBC介绍与简单示例
Java数据库连接:JDBC介绍与简单示例 在Java程序中,操作数据库是必不可少的。JDBC(Java Database Connectivity)是Java中用于连接和操作数据库的一种技术。通过JDBC,Java程序可以与各种关系型数据库进行交互࿰…...

智慧茶园:茶厂茶园监管可视化视频管理系统解决方案
一、方案背景 我国是茶叶生产大国,茶叶销量全世界第一。随着经济社会的发展和人民生活水平的提高,对健康、天然的茶叶产品的消费需求量也在逐步提高。茶叶的种植、生产和制作过程工序复杂,伴随着人力成本的上升,传统茶厂的运营及…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...