使用Docker,将fastApi项目部署到linux服务器

摘要

这篇文章介绍了在Linux服务器上部署FastAPI项目的完整流程:创建目录、修改调用地址、编写Dockerfile并暴露9999端口,同时需在阿里云安全组开放该端口。将main.py和.env文件上传后,通过docker build -t his-agent构建镜像,再用docker run -d -p 9999:9999 --name his-agent his-agent运行容器,最后验证启动状态并测试接口可用性。

目录

[1. 在linux创建目录](#1. 在linux创建目录)

[2. 将fastApi调用springboot接口时的ip地址,改成springboot服务所部署的服务器ip](#2. 将fastApi调用springboot接口时的ip地址,改成springboot服务所部署的服务器ip)

[3. 在fastApi项目中,创建docker部署所需的文件](#3. 在fastApi项目中,创建docker部署所需的文件)

[4. 提前开一下阿里云服务器安全组(防火墙)的9999端口](#4. 提前开一下阿里云服务器安全组(防火墙)的9999端口)

[5. 将fastApi的相关文件,传入上述的linux目录](#5. 将fastApi的相关文件,传入上述的linux目录)

[6. 开始用docker部署fastApi项目](#6. 开始用docker部署fastApi项目)

[① 进入目录/home/jhj/develop/java_code/his_agent_docker/](#① 进入目录/home/jhj/develop/java_code/his_agent_docker/)

[② 构建 Docker 镜像](#② 构建 Docker 镜像)

[③ 运行docker容器](#③ 运行docker容器)

[④ 查看是否运行成功](#④ 查看是否运行成功)

最终:前端调用一下,查看是否可用


1. 在linux创建目录

2. 将fastApi调用springboot接口时的ip地址,改成springboot服务所部署的服务器ip

3. 在fastApi项目中,创建docker部署所需的文件

  • 创建Dockerfile文件:
bash 复制代码
# 基础镜像
FROM python:3.10-slim

# 工作目录
WORKDIR /app

# 安装依赖(使用清华镜像源加速)
RUN pip install --no-cache-dir \
    -i https://pypi.tuna.tsinghua.edu.cn/simple \
    fastapi \
    uvicorn \
    httpx \
    requests \
    python-dotenv \
    openai \
    langchain \
    langchain-openai

# 复制项目文件
COPY main.py .
COPY .env .

# 暴露端口
EXPOSE 9999

# 启动命令
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "9999"]

4. 提前开一下阿里云服务器安全组(防火墙)的9999端口

然后点击右下角"确定"按钮,即可。

5. 将fastApi的相关文件,传入上述的linux目录

传下面三个文件到服务器的 **/home/jhj/develop/java_code/his_agent_docker/**即可:

  • main.py

  • .env

  • Dockerfile

注意:.env在linux被视为隐藏文件(因为是.开头的文件),所以我们查看时应该用ls -la,而不是ll

示例

6. 开始用docker部署fastApi项目

① 进入目录/home/jhj/develop/java_code/his_agent_docker/

② 构建 Docker 镜像

bash 复制代码
docker build -t his-agent .

查看是否构建成功,如下图,发现已经出现了名为"his-agent"的docker镜像,说明构建成功了:

③ 运行docker容器

bash 复制代码
docker run -d \
  --name his-agent \
  -p 9999:9999 \
  --restart=always \
  his-agent

④ 查看是否运行成功

bash 复制代码
# 查看容器是否在运行
docker ps | grep his-agent

# 查看启动日志
docker logs his-agent

演示:

最终:前端调用一下,查看是否可用

以上就是本篇文章的全部内容,喜欢的话可以留个免费的关注呦~~~

相关推荐
我有2只猫1 小时前
vLLM Docker 本地部署小模型
docker·容器·vllm
故乡dee云2 小时前
华为云国际服务器连不上怎么办?安全组、端口、IP 和网络排查方法
服务器·网络·华为云
佳児素花痴╮2 小时前
服务器模型、网络调试工具、网络协议头分析
服务器·网络·网络协议
Oo9202 小时前
Docker 入门:把应用和运行环境一起打包
docker
丑过三八线4 小时前
002 - 【FastAPI 入门教程】请求体与数据校验
fastapi
明志数科4 小时前
宇树科技IPO背后的产业逻辑:人形机器人从“讲故事“到“交数据“
运维·服务器·数据库
Data_Journal5 小时前
什么是 CAPTCHA,它是如何工作的?
java·大数据·服务器·前端·数据库
AC赳赳老秦5 小时前
语义采集进阶实战:利用 OpenClaw AI 语义识别自动提取网页核心信息,无需手动编写选择器
java·运维·服务器·python·信息可视化·deepseek·openclaw
我星期八休息5 小时前
扩展—DNS与ICMP
linux·服务器·网络