内网环境下通过docker-compose部署python项目(详解)

一、引言

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

二、本文简介

上篇文件讲到通过docker-compose部署python项目,但在企业中基于安全情况考虑,大多数服务器是无法访问互联网的,只能内网使用,如果通过docker部署python项目,无法访问docker.io致使python环境镜像无法拉取,本文则针对这种情况,详细讲解内网服务器中通过docker-compose部属python项目(前置条件:服务器已安装完成docker)

三、内网服务器docker部署python镜像安装

  1. 在内网中是无法安装docker镜像的,此时我们需要借助可以访问互联网的机器安装docker镜像,然后通过导出+导入的方式实现内网服务docker的安装
  2. 可访问互联网的服务器安装docker镜像(以python:3.9-alpine为例)
    2.1. 拉取python镜像(如果速度慢docker可配置为国内镜像源地址,可自行百度)
docker pull python:3.9-alpine

在这里插入图片描述

  1. 创建容器,并在容器内安装python库
    3.1. 创建容器,主要为了在镜像中安装python项目所需的python库
# 创建容器(若未指定容器名时容器名随机生成)
docker run -itd python:3.9-alpine
# 查看容器是否创建成功
docker ps 

在这里插入图片描述

  3.2. 将python库文件requirements.txt复制到容器interesting_easley中/目录下

docker cp requirements.txt interesting_easley:/

在这里插入图片描述
  3.3. 进入容器interesting_easley,安装python项目所需的python库(注意:确保上步python库文件已复制到容器内)

docker exec -it interesting_easley /bin/sh
pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt

在这里插入图片描述
  3.4. 退出容器

exit
  1. 导出含有容器interesting_easley的python镜像python_3.9-alpine.tar(导出镜像分为export和save,export导出为镜像内容含容器,save导出为镜像不含容器;此处需要容器内安装的python库,所以需要用到export进行导出)
docker export interesting_easley > python_3.9-alpine.tar

在这里插入图片描述

  1. 将导出镜像文件python_3.9-alpine.tar上传至内网服务器,在内网服务器进行导入镜像python:3.9-alpine(镜像命可自定义)
docker import python_3.9-alpine.tar python:3.9-alpine

在这里插入图片描述

四、内网服务器python项目部署

  1. 内网服务项目结构
    在这里插入图片描述
  2. 编写python项目docker-compose文件
    2.1. 新建docker-compose.yaml文件
touch docker-compose.yaml

  2.2. 编写内容

vim docker-compose.yaml
version: '3'
services:
  files_server:
    working_dir: /root/fileServer
    image: python:3.9-alpine
    container_name: files_server
    environment:
      - TZ=Asia/Shanghai
      - LANG=C.UTF-8
    restart: always
    volumes:
      - ../FilesServer:/root/fileServer
      - /home/:/home/
    command: python /root/fileServer/application.py
    ports:
      - "5000:5000"
    network_mode: bridge
    logging:
      options:
        max-size: "12m"
        max-file: "5"
      driver: json-file

在这里插入图片描述

  2.3. 编写注意

files_server:容器名称,启动需要 image:镜像名称,上面导入的镜像名称
volumes:文件挂载,服务器python项目文件与容器文件实现互通,修改服务器文件内容,可同步至容器内(这里同步的是整个项目文件夹,也可同步单个需要的文件)
command:启动命令,此处路径为容器内路径(服务器文件挂载的启动文件路径) 内容缩进:编写时注意文件内容的缩进

五、通过docker-compose启动python项目容器

  1. 启动容器(files_server:docker-compose中容器名称)
docker-compose up -d files_server
  1. 查看容器运行是否正常,可通过查看容器docker日志,查看是否报错,及通过报错信息定位问题;通过日志可以看到项目已启动成功
docker logs -f --tail 200 files_server

在这里插入图片描述

### 部署 DeepSeek 和 RapFlow 的详细指南 #### 准备工作 为了成功部署 DeepSeek 和 RapFlow,在 Ubuntu 系统上的准备工作至关重要。确保操作系统为 Ubuntu 22.04 或更高版本,并配备有 CUDA 支持的 GPU 设备,如 RTX3080Ti。 对于 NVIDIA 显卡的支持,需先安装合适的 Nvidia 驱动程序以及对应的 CUDA 工具包和 cuDNN 库[^2]。这一步骤是运行基于深度学习模型服务的基础保障。 #### 安装 Docker 及其依赖项 由于项目推荐使用容器化技术来简化环境搭建过程,因此需要提前准备好 Docker 运行时环境。按照官方文档指导完成 Docker CE 版本的安装之后,还需确认 Docker Compose 是否可用,因为后者有助于管理多容器应用的服务编排[^1]。 #### 获取并启动 DeepSeek 利用 Git 将 DeepSeek 源码克隆至本地仓库后,依据给定的 `docker-compose.yml` 文件调整必要的参数设置,比如端口映射、卷挂载路径等。接着执行命令以构建镜像并启动容器集群: ```bash git clone https://github.com/deepseek-labs/DeepSeek.git cd DeepSeek sudo docker-compose up --build -d ``` 上述操作完成后,访问指定 IP 地址即可体验到由 DeepSeek 提供的强大 AI 功能。 #### 设置 Nginx 实现内网穿透 为了让外部网络能够顺利连接内部服务器所提供的 Web API 接口或者图形界面,建议采用反向代理的方式来进行流量转发。编辑 `/etc/nginx/sites-available/default` 文件加入如下配置片段: ```nginx server { listen 80; server_name your_domain_or_ip; location / { proxy_pass http://localhost:port_number; # 替换成实际监听地址 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` 保存更改后的文件并通过重启 Nginx 来使新规则生效。 #### 关于 Ollama 的介绍 Ollama 是一种专为优化大语言模型推理性能而设计的技术框架,它可以在不影响精度的前提下显著减少计算资源消耗,从而使得高性能的自然语言处理任务能够在消费级硬件上流畅运行。 #### 处理 CUDA 不兼容问题 如果在安装过程中遇到了 CUDA 版本冲突的情况,则可以考虑借助 Conda 包管理系统解决这个问题。具体做法是从 Anaconda 渠道获取最新版 CUDA 并重新创建虚拟环境: ```bash conda create -n deepseek_env python=3.9 conda activate deepseek_env conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch ``` 这样便能有效规避因库版本差异引发的各种错误提示[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值