新的开始,新的努力。
写在前面
翻开博客园的随笔,发现上一次写已经是24年的6月份了,那时候我正在读研二。想着刷刷leetcode给后面找工作积累经验和知识基础。
但是随后发生了很多事情,不断地打击我的自信,让我陷入自我怀疑,逃避努力,然后负反馈,又自我怀疑的恶性循环。
不过现在一切都已经结束了,新的工作需要新的开始,需要继续努力。
这里我打算给自己写一份工作用的工具库,里面放自己写的代码、思路、ppt模板等,需要的时候就随时拉下来用。
我的计划是使用Docker容器、python FastAPI做接口。MinIO作为分发。nginx负责安全。
先从Docker的安装开始吧。
docker的安装命令是apt-get install -y docker.io
在这之前,最好先更新一下apt, 使用apt-get update
然后可以尝试启动docker
systemctl start docker
systemctl enable docker
使用docker --version测试一下docker是否安装正确并可以使用。
在这里我使用的是阿里云服务器,阿里云官方给了加速镜像源。

在搜索框中输入 容器镜像服务ACR 可以找到如下图所示的页面

在加速器地址可以看到镜像源的具体地址,每个人都有一个独特的代码。
下方有不同的操作系统的手册文档。
想要在Ubuntu中使用的话,可以采用官方给出的文档规范
注意要使用1.10以上的docker版本(应该没有这么低的吧....)
找到/etc/docker/daemon.json 这个json文件。
在其中编辑
{
"registry-mirrors": ["https://xxxx(替换成你的).mirror.aliyuncs.com"]
}
然后
sudo systemctl daemon-reload
sudo systemctl restart docker
这样配置好了docker的镜像源,就不会有docker hub不稳定连接的问题,但是会出现一定的库可能拉不到的问题。这个后面再讲。
我的整体项目树如图:

根据需要配置自己的docker-compose.yml,下面是我自己的配置文件供参考
services:
# =========================
# MinIO 对象存储服务
# =========================
minio:
image: minio/minio # 使用官方 MinIO 镜像
container_name: minio # 容器名称(方便 docker ps 查看)
ports:
- "9000:9000" # API 接口端口(程序访问)
- "9001:9001" # 控制台 UI(浏览器访问)
environment:
MINIO_ROOT_USER: <REDACTED> # 管理员账号(自己替换)
MINIO_ROOT_PASSWORD: <REDACTED> # 管理员密码(自己替换)
command: server /data --console-address ":9001"
# 启动 MinIO:
# /data 是存储路径
# 9001 是 Web 控制台端口
volumes:
- minio_data:/data
# 数据持久化(容器删了数据不会丢)
# =========================
# FastAPI 后端服务
# =========================
backend:
build: ./backend # 从 backend 目录下的 Dockerfile 构建镜像
container_name: backend
ports:
- "8000:8000" # 对外暴露 FastAPI 接口
depends_on:
- minio
# 启动顺序:先启动 minio,再启动 backend(不保证“完全可用”,只是顺序)
environment:
MINIO_ENDPOINT: minio:9000
# 关键:容器之间通信使用服务名(不是 localhost)
MINIO_ACCESS_KEY: <REDACTED>
MINIO_SECRET_KEY: <REDACTED>
# =========================
# 数据卷定义
# =========================
volumes:
minio_data:
# Docker 管理的持久化存储
配置自己的Dockerfile文件
FROM python:3.10-slim
# 设置容器内工作目录
WORKDIR /app
# 复制当前目录所有文件到容器中
COPY . /app
# 设置 Python 模块搜索路径(解决 app 包导入问题)
ENV PYTHONPATH=/app
# 安装依赖(使用国内镜像加速)
RUN pip install --no-cache-dir \ -i https://mirrors.aliyun.com/pypi/simple \ -r requirements.txt
# 启动 FastAPI 服务
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
在这里我找了半天的python版本,一直找不到合适的,因为我本地用的3.12,我就希望能 3.12是最好。查看了Docker hub( https://hub.docker.com/_/python?xk=ShowRecommendedBadge&xt=Disabled )都到3.15了。但是死活pull不下来,后来想到可能是镜像源没有合适的,就一点点往下试,总算试到了3.10-slim是可以用的。太磨人了。
然后写好自己的后端文件,就可以放进Docker中启动了
docker compose build --no-cache
docker compose up -d
查看 docker ps
都启动了的话,恭喜你,docker和后端都弄好了!


浙公网安备 33010602011771号