✅ 一、准备你的 Python 项目
假设你有一个简单的 app.py
文件:
python#
# app.py
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/hello')
def hello():
return jsonify({"message": "Hello from Docker!"})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
再创建一个 requirements.txt
文件:
里边包含了项目用到的一些第三方库
✅ 二、创建 Dockerfile
在项目根目录下创建一个 Dockerfile
:(不需要加后缀名)
# 使用官方 Python 镜像作为基础
FROM python:3.10-slim
# 设置工作目录
WORKDIR /app
# 拷贝项目文件到容器中
COPY . /app
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 暴露端口
EXPOSE 5000
# 启动命令
CMD ["python", "app.py"]
FROM python:3.10-slim
# 安装必要的系统依赖
RUN apt-get update && apt-get install -y \
libglib2.0-0 \
libsm6 \
libxext6 \
libxrender-dev \
libgl1-mesa-glx \
gcc \
curl && \
rm -rf /var/lib/apt/lists/*
# 设置工作目录
WORKDIR /app
# 拷贝 requirements.txt 并安装
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 安装 fastdeploy(以 CPU 为例)
RUN pip install fastdeploy-python -i https://pypi.tuna.tsinghua.edu.cn/simple
# 拷贝你的项目代码
COPY . .
# 运行你的 Flask app(根据你项目实际入口修改)
CMD ["python3", "app.py"]
✅ 三、构建 Docker 镜像
在 Dockerfile 所在目录执行以下命令:
sudo docker build -t 你的项目文件夹名 .
✅ 四、运行容器
sudo docker run -d -p 5000:5000 --name docker服务名 项目文件夹名
第一个5000是你实际运行后 外部请求用的接口,第二个5000指的是你代码里定义的接口,这句话指的是 把代码里的接口映射成新的接口。
name 后边跟的是定义的服务名。
运行成功的话 正常会出来一个id,就是你运行的服务的id。
✅ 五、postman请求。
同一局域网的其他电脑就可以请求了
如果访问不到,就运行 sudo ufw allow 5000 sudo ufw reload(使当前设备的防火墙通过5000接口)
✅六、其他一些常用命令。
0、sudo docker ps -a 查看所有的服务,包含了已经停止运行的
1、sudo docker stop 服务名 停止对应的服务
2、sudo docker rm 服务名 移除对应的服务
3、sudo docker logs 服务名 查看对应服务的全部日志
4、sudo docker logs 服务名 | tail -n 20 查看对应服务的最近20行
5、sudo docker exec -it 服务名 bash 运行进入到对应容器的命令号 可以手动用python app.py去运行对应的代码