python flask项目部署到服务器上,并制作docker镜像

将python项目部署到Docker 1.拉取python3.6镜像 docker image pull python:3.6 2.找一个目录创建test目录,目录下创建一个打印hello world的python flask项目作为例子 cd test sudo vim main.py 内容如下 from flask import Flask from flask import Flask, render_template,... 阅读详情

部署python web项目到服务器(使用docker)

参考 : https://blog.51cto.com/fish/6023519

(一)创建虚拟环境

创建目录
mkdir mytest
cd mytest

[root@python mytest]# pwd
/root/mytest

创建虚拟环境
[root@python mytest]# python3 -m venv myvenv

激活虚拟环境
[root@python mytest]# source myvenv/bin/activate

一旦激活虚拟环境后,将进入到该虚拟环境下的shell界面,如下:
(myvenv) [root@python mytest]# 
(myvenv) [root@python mytest]# ll
total 16
-rw-r--r--. 1 root root 222 Mar 31 11:14 demo.py
-rw-r--r--. 1 root root 307 Mar 31 13:26 Dockerfile
-rw-r--r--. 1 root root 282 Mar 31 13:38 gunicorn.conf.py
drwxr-xr-x. 5 root root 100 Mar 31 11:45 myvenv
-rw-r--r--. 1 root root 261 Mar 31 13:03 requirements.txt
(myvenv) [root@python mytest]# 

(二)创建flask项目

在文件夹mytest下,创建一个demo.py启动文件

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'hello docker & flask & 爱看书的小沐.'

if __name__ == '__main__':
    app.run(host="0.0.0.0", debug=True)

在该环境下执行demo.py文件, 由于没有flask环境将报错

(myvenv) [root@python mytest]# python demo.py
...

安装flask
(myvenv) [root@python mytest]# python install flask
...

再次运行demo.py
(myvenv) [root@python mytest]# python demo.py 
 * Serving Flask app 'demo' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on all addresses.
   WARNING: This is a development server. Do not use it in a production deployment.
 * Running on http://10.0.0.101:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 128-311-800
 
监听5000端口,可以正常跑起来

(三)安装 gunicorn gevent, 提高性能

(myvenv) [root@python mytest]# pip install gunicorn gevent flask

在mytest目录下创建gunicorn.conf.py配置文件
(myvenv) [root@python mytest]# vim gunicorn.conf.py

文件内容如下:
workers = 5    # 定义同时开启的处理请求的进程数量,根据网站流量适当调整
worker_class = "gevent"   # 采用gevent库,支持异步处理请求,提高吞吐量
bind = "0.0.0.0:5000"   #端口随便写,但是注意是否已经被占用。netstap -lntp

启动gunicorn,如下

(myvenv) [root@python mytest]# gunicorn demo:app -c gunicorn.conf.py
[2023-03-31 14:08:57 +0800] [58874] [INFO] Starting gunicorn 20.1.0
[2023-03-31 14:08:57 +0800] [58874] [INFO] Listening at: http://0.0.0.0:3000 (58874)
[2023-03-31 14:08:57 +0800] [58874] [INFO] Using worker: gevent
[2023-03-31 14:08:57 +0800] [58877] [INFO] Booting worker with pid: 58877
[2023-03-31 14:08:57 +0800] [58878] [INFO] Booting worker with pid: 58878
[2023-03-31 14:08:57 +0800] [58879] [INFO] Booting worker with pid: 58879
[2023-03-31 14:08:57 +0800] [58880] [INFO] Booting worker with pid: 58880
[2023-03-31 14:08:57 +0800] [58881] [INFO] Booting worker with pid: 58881

(四)将项目部署到docker上

(1) 执行如下命令, 生成python项目所依赖的包文件, 将其写入到requirements.txt文件中

(myvenv) [root@python mytest]# pip freeze > requirements.txt
(myvenv) [root@python mytest]# ll
total 16
-rw-r--r--. 1 root root 222 Mar 31 11:14 demo.py
-rw-r--r--. 1 root root 282 Mar 31 13:38 gunicorn.conf.py
drwxr-xr-x. 5 root root 100 Mar 31 11:45 myvenv
drwxr-xr-x. 2 root root  69 Mar 31 14:08 __pycache__
-rw-r--r--. 1 root root 261 Mar 31 13:03 requirements.txt
(myvenv) [root@python mytest]# cat requirements.txt 
click==8.0.4
dataclasses==0.8
Flask==2.0.3
gevent==22.10.2
greenlet==2.0.2
gunicorn==20.1.0
importlib-metadata==4.8.3
itsdangerous==2.0.1
Jinja2==3.0.3
MarkupSafe==2.0.1
typing_extensions==4.1.1
Werkzeug==2.0.3
zipp==3.6.0
zope.event==4.6
zope.interface==5.5.2
(myvenv) [root@python mytest]# 

(2) 创建Dockerfile文件, 用于构建自己的镜像

(myvenv) [root@python mytest]# vim Dockerfile
(myvenv) [root@python mytest]# cat Dockerfile
FROM python:3.8

WORKDIR /project/

COPY requirements.txt ./
RUN python -m pip install --upgrade pip
RUN pip install --ignore-requires-python dataclasses==0.8
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

#将当前所有文件拷贝到要制作的docker镜像中
COPY . .

CMD ["gunicorn", "demo:app", "-c", "./gunicorn.conf.py"]

(3) 配置docker镜像加速地址

[root@python mytest]#  mkdir -p /etc/docker
[root@python mytest]#  tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
	"https://o6ul5754.mirror.aliyuncs.com",
	"https://ung2thfc.mirror.aliyuncs.com",
	"https://registry.docker-cn.com",
	"http://hub-mirror.c.163.com",
	"https://docker.mirrors.ustc.edu.cn"
	]
}
EOF
[root@python mytest]#  cat /etc/docker/daemon.json
{
    "registry-mirrors": [
	"https://o6ul5754.mirror.aliyuncs.com",
	"https://ung2thfc.mirror.aliyuncs.com",
	"https://registry.docker-cn.com",
	"http://hub-mirror.c.163.com",
	"https://docker.mirrors.ustc.edu.cn"
	]
}
[root@python mytest]#  systemctl daemon-reload
[root@python mytest]#  systemctl restart docker

验证配置是否生效
[root@python mytest]# docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.10.4
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.17.2
    Path:     /usr/libexec/docker/cli-plugins/docker-compose
  scan: Docker Scan (Docker Inc.)
    Version:  v0.23.0
    Path:     /usr/libexec/docker/cli-plugins/docker-scan

Server:
 Containers: 5
  Running: 0
  Paused: 0
  Stopped: 5
 Images: 3
 Server Version: 23.0.2
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 1e1ea6e986c6c86565bc33d52e34b81b3e2bc71f
 runc version: v1.1.4-0-g5fd4c4d
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
 Kernel Version: 3.10.0-957.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 1
 Total Memory: 1.934GiB
 Name: python
 ID: IP2S:J2XT:35RB:KK7O:HFQ5:FMME:HNT2:LYFR:74GT:7CWE:GXGM:446B
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  https://o6ul5754.mirror.aliyuncs.com/
  https://ung2thfc.mirror.aliyuncs.com/
  https://registry.docker-cn.com/
  http://hub-mirror.c.163.com/
  https://docker.mirrors.ustc.edu.cn/
 Live Restore Enabled: false

(4) 制作docker镜像

[root@python mytest]# docker build -t myapp:1.0 .
[+] Building 18.5s (12/12) FINISHED                                                                                                                                                               
 => [internal] load build definition from Dockerfile                                                                                                                                         0.0s
 => => transferring dockerfile: 406B                                                                                                                                                         0.0s
 => [internal] load .dockerignore                                                                                                                                                            0.0s
 => => transferring context: 2B                                                                                                                                                              0.0s
 => [internal] load metadata for docker.io/library/python:3.8                                                                                                                                0.2s
 => [1/7] FROM docker.io/library/python:3.8@sha256:4c4e6735f46e7727965d1523015874ab08f71377b3536b8789ee5742fc737059                                                                          0.0s
 => [internal] load build context                                                                                                                                                            0.2s
 => => transferring context: 370.95kB                                                                                                                                                        0.2s
 => CACHED [2/7] WORKDIR /project/                                                                                                                                                           0.0s
 => CACHED [3/7] COPY requirements.txt ./                                                                                                                                                    0.0s
 => CACHED [4/7] RUN python -m pip install --upgrade pip                                                                                                                                     0.0s
 => [5/7] RUN pip install --ignore-requires-python dataclasses==0.8                                                                                                                          2.3s
 => [6/7] RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple                                                                                                   12.5s
 => [7/7] COPY . .                                                                                                                                                                           2.2s 
 => exporting to image                                                                                                                                                                       1.2s 
 => => exporting layers                                                                                                                                                                      1.1s 
 => => writing image sha256:4afe28f18625b8bf5cdcb9785d158e9917561d1d6de1367e71bf4fa3d40fc407                                                                                                 0.0s 
 => => naming to docker.io/library/myapp:1.0                                                                                                                                                 0.0s 
[root@python mytest]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED          SIZE
myapp         1.0       4afe28f18625   59 minutes ago   1.01GB
hello-world   latest    feb5d9fea6a5   18 months ago    13.3kB

(5) 运行该镜像成docker容器

[root@python mytest]# docker run -d -p 5000:5000 myapp:1.0
a91f1d816659e5abcd74a34d4bfc2a049a60c98d0a797a49202a7cc83bbc0778
[root@python mytest]# 

浏览器访问 http://10.0.0.101:5000 页面可以正常访问并获取到数据

(6) 如果修改代码, 需要重新制作该镜像文件, 例如修改demo.py文件如下

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'hello docker 666'

if __name__ == '__main__':
    app.run(host="0.0.0.0", debug=True, threaded=True)

同时修改端口5000为3000; 重新制作docker镜像文件

[root@python mytest]# docker build -t myapp:1.1 .  # 这次打的标签tag版本为1.1
[root@python mytest]# docker build -t myapp:1.1 .
[+] Building 16.6s (12/12) FINISHED                                                                                                                                                               
 => [internal] load build definition from Dockerfile                                                                                                                                         0.0s
 => => transferring dockerfile: 406B                                                                                                                                                         0.0s
 => [internal] load .dockerignore                                                                                                                                                            0.0s
 => => transferring context: 2B                                                                                                                                                              0.0s
 => [internal] load metadata for docker.io/library/python:3.8                                                                                                                               15.2s
 => [1/7] FROM docker.io/library/python:3.8@sha256:4c4e6735f46e7727965d1523015874ab08f71377b3536b8789ee5742fc737059                                                                          0.0s
 => [internal] load build context                                                                                                                                                            0.2s
 => => transferring context: 370.93kB                                                                                                                                                        0.2s
 => CACHED [2/7] WORKDIR /project/                                                                                                                                                           0.0s
 => CACHED [3/7] COPY requirements.txt ./                                                                                                                                                    0.0s
 => CACHED [4/7] RUN python -m pip install --upgrade pip                                                                                                                                     0.0s
 => CACHED [5/7] RUN pip install --ignore-requires-python dataclasses==0.8                                                                                                                   0.0s
 => CACHED [6/7] RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple                                                                                             0.0s
 => [7/7] COPY . .                                                                                                                                                                           0.7s
 => exporting to image                                                                                                                                                                       0.5s
 => => exporting layers                                                                                                                                                                      0.5s
 => => writing image sha256:c7df86df2dd926af25bf4194e18abbd5af873ef25ba0ed5c5cbf686d8f2df62d                                                                                                 0.0s
 => => naming to docker.io/library/myapp:1.1                                                                                                                                                 0.0s
[root@python mytest]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED          SIZE
myapp         1.1       c7df86df2dd9   7 seconds ago    1.01GB
myapp         1.0       4afe28f18625   11 minutes ago   1.01GB
hello-world   latest    feb5d9fea6a5   18 months ago    13.3kB
[root@python mytest]# docker run -d -p 3000:3000 myapp:1.1
254176fcad70aebde1bb80b120b7b1f715ea1c67ce2a4d3e949b5be1bec13abc
[root@python mytest]#

再次访问 http://10.0.0.101:3000 已经正常访问

(五) 保存镜像文件到指定目录下

查看当前镜像
[root@python mytest]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
check_tools   1.4       1175ff06f5c3   21 hours ago    1.06GB
check_tools   1.3       908c5ec78290   22 hours ago    1.04GB
check_tools   1.2       c584b78ae39d   22 hours ago    1.04GB
check_tools   1.1       770dd461a2cf   22 hours ago    1.04GB
check_tools   1.0       2692e79d33a2   6 days ago      1.01GB
myapp         1.1       c7df86df2dd9   7 days ago      1.01GB
myapp         1.0       4afe28f18625   7 days ago      1.01GB
hello-world   latest    feb5d9fea6a5   18 months ago   13.3kB
hello-world   latest    feb5d9fea6a5   18 months ago   13.3kB

保存镜像到指定目录下
[root@python mytest]# docker save 1175ff06f5c3>/root/check_tools.tar #check_tools.tar为打包的文件

查看保存的镜像文件 check_tools.tar
[root@python mytest]# ll /root/
total 1075124
-rw-------.  1 root root       1650 Oct 22  2020 anaconda-ks.cfg
-rw-r--r--.  1 root root 1083920896 Apr  6 16:10 check_tools.tar
drwxr-xr-x.  4 root root        140 Apr  7 13:16 mytest
drwxr-xr-x. 17  501  501       4096 Jan 12  2021 Python-3.6.4
-rw-r--r--.  1 root root   16992824 Jan 12  2021 Python-3.6.4.tar.xz
drwxr-xr-x.  2 root root         66 Jan 20  2021 test
drwxr-xr-x.  3 root root         21 Jan 20  2021 virtualenv_1
[root@python mytest]# 

(六) 在另一台主机上加载镜像文件

将上述步骤生成的check_tools.tar文件拷贝到另一台机器上进行加载

[root@localhost ~]#  docker load < check_tools.tar        # check_tools.tar 为文件名称

查看镜像
[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
check_tools   1.4       1175ff06f5c3   21 hours ago    1.06GB
[root@localhost ~]# 

后台启动该镜像服务
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@localhost ~]# docker run -d -p 3000:3000 check_tools:1.4
22870b5ee2f07c2faf85b9f29bbec078355b9dd510154abb6a2f299a0078792d
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                                       NAMES
22870b5ee2f0   check_tools:1.4   "gunicorn check_tool…"   35 seconds ago   Up 34 seconds   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   flamboyant_keller
[root@localhost ~]#  netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      7037/sshd           
tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      14811/docker-proxy  
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      7125/master         
tcp6       0      0 :::22                   :::*                    LISTEN      7037/sshd           
tcp6       0      0 :::3000                 :::*                    LISTEN      14815/docker-proxy  
tcp6       0      0 ::1:25                  :::*                    LISTEN      7125/master         
udp        0      0 127.0.0.1:323           0.0.0.0:*                           6325/chronyd        
udp6       0      0 ::1:323                 :::*                                6325/chronyd        
[root@localhost ~]# 

(七)逻辑卷映射

为避免每次修改代码后, 都要重新制作镜像文件, 采用逻辑卷映射: 将宿主机的某个目录映射到镜像文件中的某个目录, 以后只需要宿主机中的对应文件就可以

逻辑卷映射 check_tool_data
[root@python mytest]# docker run -p 3000:3000 -v check_tool_data:/project/ check_tools:1.7
[2023-04-07 07:14:49 +0000] [1] [INFO] Starting gunicorn 20.1.0
[2023-04-07 07:14:49 +0000] [1] [INFO] Listening at: http://0.0.0.0:3000 (1)
[2023-04-07 07:14:49 +0000] [1] [INFO] Using worker: gevent
[2023-04-07 07:14:49 +0000] [8] [INFO] Booting worker with pid: 8
[2023-04-07 07:14:49 +0000] [9] [INFO] Booting worker with pid: 9
[2023-04-07 07:14:49 +0000] [10] [INFO] Booting worker with pid: 10
[2023-04-07 07:14:49 +0000] [11] [INFO] Booting worker with pid: 11
[2023-04-07 07:14:50 +0000] [12] [INFO] Booting worker with pid: 12
^C[2023-04-07 07:17:02 +0000] [1] [INFO] Handling signal: int
[2023-04-07 07:17:02 +0000] [8] [INFO] Worker exiting (pid: 8)
[2023-04-07 07:17:02 +0000] [9] [INFO] Worker exiting (pid: 9)
[2023-04-07 07:17:02 +0000] [12] [INFO] Worker exiting (pid: 12)
[2023-04-07 07:17:02 +0000] [11] [INFO] Worker exiting (pid: 11)
[2023-04-07 07:17:02 +0000] [10] [INFO] Worker exiting (pid: 10)
[2023-04-07 07:17:03 +0000] [1] [INFO] Shutting down: Master

查找逻辑卷位置
[root@python mytest]# find / -name check_tool_data
/var/lib/docker/volumes/check_tool_data
[root@python mytest]# cd /var/lib/docker/volumes/check_tool_data
[root@python _data]# ll
total 24
-rw-r--r--. 1 root root 7112 Apr  6 16:03 check_tools.py
-rw-r--r--. 1 root root  222 Mar 31 11:14 demo.py
-rw-r--r--. 1 root root  389 Apr  6 16:04 Dockerfile
-rw-r--r--. 1 root root  281 Apr  6 15:27 gunicorn.conf.py
drwxr-xr-x. 2 root root   71 Apr  7 15:14 json_file
drwxr-xr-x. 5 root root  100 Apr  7 15:14 myvenv
drwxr-xr-x. 2 root root   76 Apr  7 15:14 __pycache__
-rw-r--r--. 1 root root  280 Apr  6 15:39 requirements.txt
[root@python _data]# 

之后只需要修改 /var/lib/docker/volumes/check_tool_data/check_tools.py文件就可以了, 修改代码重新启动容器就可以加载到修改后的代码了

[root@python mytest]# docker run -p 3000:3000 -v check_tool_data:/project/ check_tools:1.7
Docker 之 Python Flask 服务的构建运行 前言 使用Docker容器的形式运行一个简单的Flask项目 步骤 一.编写py代码 1.用python编写一个简单的Flask项目,这里我使用的是PyChram进行项目的编写 创建一个名叫app.py的文件如下:(值得注意的是:Flask 需要一波倒包,鼠标移动到Flask 按 Alt + Enter 完成倒包) #!/user/bin/env python3 # -*- coding: utf-8 -*- # @Email : 3431463@qq.com from flask i 阅读详情

相关推荐

【更新】Docker新手入门教程1:在Windows系统创建Python flask镜像并运行网站应用

Window系统安装Docker 及创建镜像、容器应用

PittDing的博客 1742

python flask项目打包成docker镜像发布

10.最后,可以将Docker镜像发布到Docker Hub或其他容器注册表中。9.现在可以使用浏览器或其他工具在http://localhost:5000上访问您的应用程序。其中“my-flask-app”是您的应用程序的名称,“latest”是版本号。完成上述步骤后,你的Docker镜像就可以在Docker Hub上公开使用了。其中“username”是你在Docker Hub上的用户名。注意:这可能需要几分钟时间,具体取决于你的镜像大小和网络速度。a. 创建一个Docker Hub账号。

weixin_52664417的博客 1196

Pycharm里建立Flask项目并把Flask项目部署到远程服务器

目录配置环境建立Flask项目 配置环境 windows 10+python 3.7+tensorflow 2.3+Pycharm professional 2022 建立Flask项目 菜单栏里选择文件选项卡,点击新建项目 然后选择项目地址,解释器可以是之前的解释器,或者建一个新的虚拟环境就行,我的为了和后端一致就用了现有的tensorflow环境。 创建好的界面 Flask项目结构如下:static下面放css、js、images等文件,模板就放templates下 ...

拔牙不打麻药 4778

【小沐学Python】Python实现Web服务器(Flask打包部署上线)

那么在生产环境中,需要用生产专用 Web 服务器,比如 uWSGI、Gunicorn、Gevent 等等。 独立的WSGI容器:有很多流行的服务器用Python编写,它们包含WSGI应用程序并提供HTTP服务。

爱看书的小沐 1万+

Docker 部署 Flask

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oxnMlRfL-1659688722030)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/086045fdaae2495497747903b858aa3f~tplv-k3u1fbpfcp-zoom-1.image)]复制本地主机的 ( 为 Dockerfile 所在目录的相对路径)到容器中的 (当使用本地目录为源目录时,推荐使用 COPY)......

Chad97的博客 2901

基于Docker的Flask项目部署

基于Docker的Flask项目部署 最近使用flask框架完成了一个项目,准备部署到服务器上边,捣鼓了几天,终于搞定了,回来写一下部署心得体会。 为什么选择docker 将软件打包成标准化单元,用于开发,装运和部署 容器是一个标准的软件单元,它将代码及其所有的依赖关系打包,以便应用程序从计算环境快速可靠地运行到另外一个计算环境。Docker容器映像是一个轻量级,独立地可执行软件包,包含运行应用程序所需地一切:代码,运行时,系统工具,系统库和设置。 容器映像在运行时成为容器,在Docker容器的情况下——

weixin_43746302的博客 924

用Docker部署flask+uWSGI+Nginx

本文是在一个Centos容器中安装Python3、flask、uWSGI、Nginx等软件,运行flask项目,最后生成Docker镜像。 创建Centos容器 登录一台Linux主机,安装docker软件。 若还未安装doker,其安装部署可参考博文centos7安装配置docker 1.创建一个Centos容器,让它在后台运行。 docker run -d --name deploy1 --network host centos:7 tail -f /dev/null -d

carooo的博客 1716

在Docker容器中部署Flask应用:一步步的实践指南

Flask是一个灵活的Web应用框架,它没有默认的数据库、表单验证或任何其他具体功能,这使得开发者可以快速地开发简单的应用,同时也可以扩展构建复杂的应用。

2401_85743969的博客 2119

Python Flask部署(Docker制作Python镜像)

1 . 导出Flask项目依赖包命令 pip freeze > requirements.txt 生成的文件放到项目根目录下 2 . 制作Docker镜像 1). 创建文件夹, 如docker_build, 存放项目和DockerFile文件 项目直接复制到docker_build文件下 创建DockerFile文件, 无后缀 2) . 编写DockerFile # 项目基于的pyt...

丶Melody 1938

将Flask应用封装成Docker服务的实现

然后,我们将requirements.txt文件复制到容器的/app目录,并安装所有的依赖项。接下来,我们将当前目录的所有文件复制到容器的/app目录中。Flask是一个流行的Python Web框架,而Docker是一种容器化平台,可以方便地打包和部署应用程序。接下来,我们将创建一个名为Dockerfile的文件,用于构建Docker镜像。首先,确保你已经安装了Docker,并且已经创建了一个Flask应用。这个命令将会在容器中运行flask-app镜像,并将容器的5000端口映射到主机的5000端口。

HkPostscript的博客 360

CANoe软件之离线报文回放与分析实战

本文详细介绍了如何使用CANoe软件进行离线报文回放与分析,帮助工程师将现场故障数据转化为可反复研究的实验室资源。通过实战步骤,指导如何搭建分析工程、加载DBC文件解码信号,并利用Trace和Graphics窗口进行深度数据筛选与图形化分析,从而高效定位汽车电子故障,是提升诊断效率的关键技能。

weixin_29227585的博客 527

Docker部署python项目挂载flask详细图文教程

最近有学习python,整理了一下flask相关知识,刚好有一位朋友一直问我怎么部署flask 在docker流行的今天,部署项目无疑比以前学习的时候无疑更方便许多,趁着现在弄了一道flask,便写一篇新手教程篇部署flask,跟着本教程一步一步做就能部署成功。同时给出一些链接,想深入一点了解的可以自行深入学习。 基础介绍 Flask:python web流行的框架之一,最大特点是它的 轻量级 基于Werkzeug WSGI工具箱和Jinja2 模板引擎。 Flask 有以下特点: 轻量级和模块化设计,

小翔 3725

基于深度强化学习的无地图移动机器人导航:让机器人在未知环境中智能前行

虽然仍然面临sim-to-real差距、安全性保证等挑战,但随着算法的不断改进和计算能力的提升,基于DRL的无地图导航技术将在服务机器人、工业自动化、太空探索等领域发挥越来越重要的作用,为人类生产和生活带来更大便利和价值。对于复杂环境下的动态目标导航问题,研究人员提出了多智能体协同控制算法(如Teamwork-Net算法),通过多个智能体分别控制机器人的运动速度与运动方向,协同实现更高效、更稳定的导航性能。深度强化学习结合了深度学习的感知能力和强化学习的决策能力,非常适合解决无地图导航问题。

weixin_45131592的博客 901

制作自定义Docker镜像并部署使用

本文介绍了使用Docker打包Python Flask程序并部署给客户的具体流程。首先说明了Docker镜像的静态特性,然后详细演示了在Ubuntu系统下构建包含Flask应用的Docker镜像的步骤,包括创建Dockerfile、构建镜像和测试运行。文章还讲解了如何将镜像导出为tar文件并导入客户环境的方法。最后提供了高级操作技巧,包括打包conda环境的两种方式、调试容器内文件的方法,以及docker run和docker start命令的区别。整个流程帮助开发者实现Python应用程序的容器化部署,适

joyopirate的博客 902

整流桥选型参数,结构原理,工艺与注意问题总结

整流桥(Rectifier Bridge)是一种电子元件,它的主要作用是将交流电(AC)转换为直流电(DC)。这种转换在许多电子设备中都是必要的,因为大多数电子元件和电路都需要直流电源来工作。本文对整流桥的工作原理,结构特点,工艺流程,选型参数及设计注意事项进行总结。

fydar的博客 2184

手把手教你学PCIE(5.1)--pcie固件初始化的硬件初始化

PCIe 固件初始化的硬件初始化是一个复杂但至关重要的过程。通过正确配置 PCIe 控制器和相关硬件,可以确保系统的稳定性和性能。以上步骤和示例代码提供了一个基本的框架,实际开发中可能需要根据具体的硬件和需求进行调整和优化。

MHD0815的博客 1688

实战基于Docker部署FLASK后端api并使用云托管服务

我们讲了怎么用docker部署nginx应用网站,这篇文章我们就来部署我们的后端api。我们这次尝试在服务器和微信云托管都进行部署,部署于云托管也是现在个人开发者的另一种选择(个人觉得啊)不用自己运维确实省事而且还可以可视化监控资源。而且微信云托管有个好处就是可以在小程序公众号进行内网连接,从而避免了可能的ddos攻击。......

Aasee的博客 2212

Python爬虫终极指南:异步爬虫+Playwright逆向,高效爬取携程旅游数据

Playwright解决动态渲染和加密参数难题,模拟真实浏览器环境;aiohttp异步提升抓取效率,结合代理池和并发控制规避风控;指纹伪装、行为模拟等技巧大幅降低被检测概率。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2949

Docker 部署 Python 的 Flask项目

本文详细介绍怎么用docker部署python项目, 主要介绍部署的流程和相关代码分享。问题解决方案

先完成,再完美—60分比0分强100倍 1852

6、 实时家禽健康识别与疾病检测系统的深入解析

本文深入解析了一种基于物联网的实时家禽健康识别与疾病检测系统,结合图像分析和音频分析技术,能够有效识别病鸡并防止疾病传播。文章详细介绍了系统的测试环境、数据采集与预处理方法、图像与音频分析流程,并对系统性能进行了全面评估。最后提出了未来改进方向,包括多模态融合、深度学习应用及实时性优化等。

weixin_28840811的博客 185

【华为OD机试真题】282、求满足条件的最长子串的长度 | 机试真题+思路参考+代码分析 (C++、Java、Py、C语言、JS)

题目描述 >给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,子串要求: >  1、只包含1个字母(a~ z,A~Z), 其余必须是数字; 2、字母可以在子 串中的任意位置; >  如果找不到满足要求的子串,如全是字母或全是数字,则返回-1

KJ.JK 1万+

手把手教如何在Docker中部署flask项目

一、安装环境 python3.6 centos7 django2.0 docker 警告:切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker. 二、安装docker 1、安装gcc yum -y install gcc 2、安装gcc-c++ yum -y install gcc-c++ 3、安装其他安装包 yum...

hard_days的博客 3779

浪涌抗扰度部分解读

8.3 测试仪器: 8.3.1浪涌发生器(对于连接到对称通信线的接口采用10/700us的组合波发生器;对于其他情况采用1.2/50us(8/20us)组合波发生器,输出极性正负可调、移相范围0-360°可调,最大重复率至少每分钟1次,开路输出电压0.5-4kV,电源线的话有效效输出阻抗为2Ω,通信线的话有效输出阻抗为40Ω) 8.3.2 耦合/去耦网络 8.3.3 参考接地平板 8...

喵叫兽的博客 2503

【小沐学Python】Python实现Web服务器(Ubuntu+Docker下部署Flask)

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker 的版本。

爱看书的小沐 2422

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

python项目通过docker部署到Linux系统并实现远程访问

背景需求:在Windows系统编写了简单的python代码,希望能通过docker打包到Linux Ubuntu系统中,并运行起来,并且希望在本地Windows系统中能通过postman访问。

danielxinhj的博客 1735

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Docker部署Flask项目

Docker部署flask

Button的博客 2063

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: java操作RabbitMQ
下一篇: java对象序列化
Hello Byte
博客等级 码龄10年 44粉丝 139原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值