docker操作包括使用docker制作为接口

 

Docker 化 Flask OCR 应用指南

1. 创建必要的文件

在你的 Flask 应用项目根目录下,你需要创建以下文件:

1.1 Dockerfile

这是一个文本文件,包含了构建 Docker 镜像所需的所有指令

 1 # 使用官方 Python 3.10 (Python 3.13)精简版作为基础镜像,减小镜像体积
 2 FROM python:3.10-slim
 3 
 4 # 设置工作目录
 5 WORKDIR /app
 6 
 7 # 复制依赖文件清单
 8 COPY requirements.txt .
 9 
10 # 安装 Python 依赖
11 # 使用清华 PyPI 镜像加速下载,并清理缓存以减小镜像层大小
12 RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
13 
14 # 复制应用代码到容器中
15 COPY . .
16 
17 # 创建上传目录并确保适当的权限
18 RUN mkdir -p uploads && chmod 755 uploads
19 
20 # 暴露 Flask 应用运行的端口
21 EXPOSE 5000
22 
23 # 设置环境变量,确保 Python 输出直接显示在容器日志中
24 ENV PYTHONUNBUFFERED=1
25 
26 # 设置容器启动时执行的命令
27 CMD ["python", "app.py"]

1.2 requirements.txt

可以使用 pip freeze > requirements.txt命令生成当前环境的完整依赖清单。

1.3 .dockerignore(可选但推荐)

避免将不必要的文件复制到 Docker 镜像中,类似于 .gitignore

 1 .git
 2 .gitignore
 3 __pycache__
 4 *.pyc
 5 *.pyo
 6 *.pyd
 7 .env
 8 venv/
 9 env/
10 .DS_Store
11 README.md
.gitignore

2. 构建 Docker 镜像

在包含 Dockerfile 的目录中,打开终端执行以下命令:  
# 构建镜像,-t 参数给镜像命名
docker build -t flask-ocr-app .

 

这个过程会
  1. 1.下载 Python 3.10 slim 基础镜像
  2. 2.安装 requirements.txt中指定的依赖
  3. 3.将你的应用代码复制到镜像中
  4. 4.设置启动命令

3. 运行 Docker 容器

 

镜像构建完成后,运行容器:
 
1 # 运行容器
2 docker run -d -p 5000:5000 --name ocr-container flask-ocr-app

参数说明

-d: 在后台运行容器(守护模式)
-p 5000:5000: 将主机的 5000 端口映射到容器的 5000 端口
--name ocr-container: 给容器指定一个名称

 

 

4. 修改代码后重新构建服务

1.sudo docker stop flask-ocr-container 2>/dev/null || true   停止flask-ocr-container服务

2.sudo docker rm flask-ocr-container 2>/dev/null || true      删除flask-ocr-container服务

3.sudo docker run -d -p 5000:5000 --name flask-ocr-container flask-ocr-app:latest   重新映射端口

 

 

 sudo docker build --no-cache -t flask-ocr-app . 构建docker容器

sudo docker logs -f flask-ocr-container 查询容器flask-ocr-container 日志

sudo docker restart flask-ocr-container 重启容器flask-ocr-container

sudo docker ps -a | grep flask-ocr-container # 查看容器状态~

sudo docker exec flask-ocr-container netstat -tuln | grep :5000

sudo docker images ps -a 查看镜像

sudo docker  ps -a 查看容器

 

5. 可视化docker


通过 VNC + noVNC 在浏览器中访问(推荐 ✅)

1.创建并运行新容器,在构建时直接安装桌面环境和 VNC:

1 docker run -itd \
2   --name Documentrecognition \
3   -p 6111:80 \          # 将容器的80端口映射到宿主机的6111端口,用于noVNC网页访问
4   -p 5901:5901 \        # 可选:映射VNC端口,用于VNC客户端直接连接
5   ubuntu:22.04

进入容器并安装必要软件​:

 1 docker exec -it Documentrecognition /bin/bash
 2 
 3 # 在容器内执行以下命令
 4 apt update
 5 
 6 # 1. 安装轻量级桌面环境(例如 Xfce)和基础工具
 7 apt install -y xfce4 xfce4-goodies x11vnc xvfb firefox
 8 
 9 # 2. 安装 noVNC(让我们可以通过浏览器访问VNC)
10 apt install -y novnc websockify
11 
12 # 3. 设置VNC密码(这里以密码'password'为例,请务必修改!)
13 mkdir ~/.vnc
14 x11vnc -storepasswd password ~/.vnc/passwd

在容器内启动 VNC 和 noVNC 服务​:

 1 # 启动一个虚拟显示器并在后台运行VNC服务器
 2 Xvfb :1 -screen 0 1920x1080x24 &
 3 export DISPLAY=:1
 4 startxfce4 &
 5 
 6 # 启动VNC服务器,监听5901端口
 7 x11vnc -display :1 -forever -shared -rfbport 5901 -passwd password &
 8 
 9 # 启动noVNC,将VNC的5901端口映射到noVNC的6080端口
10 websockify -D --web=/usr/share/novnc/ 6080 localhost:5901 &

2. 通过浏览器访问

现在,打开你的浏览器,访问:

http://你的宿主机IP地址:6111/vnc.html

例如:http://192.168.1.100:6111/vnc.html

首次连接时需要输入之前设置的 VNC 密码,之后就能看到完整的 Ubuntu 桌面环境了!

posted @ 2025-09-19 11:04  1014040868a  阅读(15)  评论(0)    收藏  举报