Python项目部署到NAS Docker操作手册

Administrator
Administrator
发布于 2025-04-24 / 22 阅读
0
0

Python项目部署到NAS Docker操作手册


准备工作

  1. 确认NAS已安装Docker

    • NAS:应用商店或命令行安装 Docker
  2. 项目文件要求

    • 确保项目目录包含以下文件:
      PJFile/  
      ├── app/               # 项目代码目录  
      │   └── main.py       # 入口文件  
      ├── requirements.txt  # 依赖列表  
      └── Dockerfile        # Docker镜像构建文件  
      

    上述文件的详细描述方法点我


方法一:通过Dockerfile直接部署

步骤 1:上传项目到NAS共享文件夹

  1. 通过 FileStation(群晖)或 SMB/FTPPJFile 文件夹上传到 NAS 的共享目录(如 /volume1/docker

步骤 2:通过SSH连接NAS

  1. 启用SSH服务(群晖示例):
    • 进入「控制面板」→「终端机和SNMP」→ 勾选「启用SSH服务」→ 设置端口(默认22)
  2. 连接NAS(以Windows为例):
    ssh admin@你的NAS_IP -p 22
    # 示例:
    ssh admin@192.168.1.100
    
    • 输入管理员密码登录

步骤 3:定位到项目目录

# 进入共享文件夹(群晖、绿联默认路径)
cd /volume1/docker/PJFile

# 确认文件存在
ls -l
# 应看到 Dockerfile、requirements.txt 等文件

步骤 4:构建并运行Docker镜像

# 构建镜像(需管理员权限)
sudo docker build -t my-python-app:1.0 -f Dockerfile .

# 运行容器(后台模式 + 端口映射)
sudo docker run -d --name textweb-container -p 8099:8099 my-python-app:1.0

步骤 5:验证部署

  1. 访问服务:
    • 浏览器打开 http://你的NAS_IP:4000
  2. 查看容器状态:
    sudo docker ps
    

方法二:本地打包镜像上传部署

步骤 1:本地构建Docker镜像

  1. 在本地开发机操作:
    # 进入项目目录
    cd PJFile
    
    # 构建镜像
    docker build -t my-python-app:latest .
    
    # 验证镜像
    docker images
    

步骤 2:导出镜像为.tar文件

# 导出镜像包(Windows/macOS/Linux通用)
docker save -o pjfile-python-app.tar my-python-app:latest

步骤 3:上传.tar文件到NAS

  1. 图形化上传(推荐新手):

    • 通过 FileStation、网页拖拽或 SMB 共享将 .tar 文件上传到 NAS 的共享目录(如 /volume1/docker
  2. 命令行上传(可选)

    scp pjfile-python-app.tar admin@NAS_IP:/volume1/docker/
    

步骤 4:在NAS加载镜像

  1. 通过SSH连接NAS(参考方法一步骤2)

  2. 加载镜像

    # 进入镜像所在目录
    cd /volume1/docker
    
    # 加载镜像
    sudo docker load -i pjfile-python-app.tar
    
    # 验证镜像
    sudo docker images
    

步骤 5:运行容器

# 直接启动容器
sudo docker run -d --name my-app -p 4000:80 my-python-app:latest

# 或通过图形界面操作(群晖示例):
# 1. 打开「Container Manager」→「镜像」→ 找到镜像
# 2. 点击「启动」→ 设置端口映射 → 确认

两种方法对比

场景方法一(Dockerfile部署)方法二(镜像上传部署)
适用情况需要频繁更新代码镜像稳定,需快速部署
网络依赖需上传完整项目文件仅需上传.tar文件
构建速度依赖NAS性能(可能较慢)本地构建更快
安全性暴露Dockerfile和源码仅分发镜像,保护源码

常见问题解决

  1. 权限不足

    • 所有命令前加 sudo
    • 或切换为 root 用户:sudo -i
  2. 端口冲突

    • 修改运行命令的端口号:
      sudo docker run -d --name my-app -p 5000:80 my-python-app:latest
      
  3. 镜像加载失败

    • 检查镜像架构是否匹配(ARM/x86_64):
      # 在 Dockerfile 首行指定平台
      FROM --platform=linux/amd64 python:3.9-slim
      
  4. 依赖安装失败

    • 在 Dockerfile 中添加系统依赖安装步骤:
      RUN apt-get update && apt-get install -y libpq-dev
      

操作总结

  1. 直接部署Dockerfile:适合开发调试阶段,需频繁修改代码
  2. 镜像上传部署:适合生产环境,快速分发稳定版本

按需选择部署方式,即可轻松将Python项目部署到NAS的Docker环境中!


评论