第3章:环境准备 — Linux服务器配置、Docker安装与环境依赖

环境搭建这事儿,看着琐碎,但真容易出问题。我见过太多项目,代码写得挺好,结果部署时卡在环境不一致上。

说白了,这一章就是给你的项目找个稳定的家。我们得让它在哪儿跑都一样。这就是Docker的价值。我个人习惯,所有后端项目都容器化。省心。

3.1 硬件与操作系统选型

先说说硬件。这个项目对资源要求不高,但别太抠门。

  • CPU:2核起步,4核更稳。
  • 内存:4GB够用,8GB舒服。
  • 磁盘:20GB空间。要是跑生产环境,SSD是必须的。

操作系统呢,我建议用 Ubuntu 22.04 LTS。为啥?社区活跃,文档全,遇到坑容易搜到答案。CentOS 7也行,但2024年已停止维护,新项目就别用了。

小提示:如果你手头只有Windows,装个WSL2(Windows Subsystem for Linux)也能搞定。我在项目中试过,性能损耗很小,开发完全够用。

3.2 Linux服务器基础配置

拿到一台新服务器,别急着装软件。先做几件基本的事。

3.2.1 更新系统包

这是老生常谈了。但很多人真的跳过这一步,结果后面装啥都报错。

sudo apt update && sudo apt upgrade -y

3.2.2 安装常用工具

有些工具是系统自带的,但有些得自己装。我这里列个清单。

sudo apt install -y curl wget vim git net-tools

嗯,vim可能有人不习惯。但你想想看,服务器上没图形界面,总得会个文本编辑器吧。我个人一直用vim,习惯了就好。

3.2.3 配置防火墙

千万别裸奔。开放必要的端口就够了。

sudo ufw allow 22/tcp      # SSH
sudo ufw allow 2375/tcp     # Docker(注意,这个别在生产环境开)
sudo ufw enable
注意!Docker的2375端口是未加密的。生产环境用2376(TLS加密)或者干脆别对外暴露。我曾因为忘记关这个端口,被扫描器盯上过。

3.3 安装Docker

Docker安装不难。但有几个细节你得留意。

3.3.1 卸载旧版本

先确认一下系统里有没有装过老版本。

sudo apt remove docker docker-engine docker.io containerd runc

3.3.2 用官方脚本安装(推荐)

这是最快的方法。一行命令搞定。

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

我习惯用这个方式。它自动检测你的系统,装对应版本。省得自己找源。

3.3.3 验证安装

sudo docker --version
sudo docker run hello-world

见到“Hello from Docker!”那行字,说明装好了。

3.3.4 免sudo运行Docker

每次敲sudo docker很烦。把当前用户加到docker组就行。

sudo usermod -aG docker $USER
# 然后退出登录,重新连
经验之谈:加完组要重新登录才生效。你如果不想退,可以用 newgrp docker 临时切换。但重启后还是得重新执行。

3.4 安装Python 3.10+

Docker里用Python很方便。但本地开发环境也得配好。我建议装 Python 3.11。3.10也行,但3.11性能更好,而且语法糖更多。

3.4.1 检查系统自带Python

Ubuntu 22.04默认装的是Python 3.10。你可以看看版本。

python3 --version

如果版本太低,或者你想装3.11,可以这样。

3.4.2 用deadsnakes PPA安装Python 3.11

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.11 python3.11-venv python3.11-dev

deadsnakes这个PPA很靠谱。我一直在用。它提供各种Python版本的官方包。

3.4.3 设置默认Python版本(可选)

你如果想让python3指向3.11,可以改一下。

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2
sudo update-alternatives --config python3
小心:Ubuntu系统底层依赖Python 3.10。你如果把默认版本改成3.11,可能导致某些工具出问题。我建议用虚拟环境管理项目,别动系统Python。

3.5 安装项目依赖

项目依赖包括两部分:系统级依赖和Python包。

3.5.1 系统依赖

有些Python库需要编译。所以C编译器、开发头文件都得有。

sudo apt install -y build-essential libssl-dev libffi-dev

3.5.2 Python包管理

我推荐用 pip 加 虚拟环境。别全局装包,会乱。

python3.11 -m venv venv
source venv/bin/activate
pip install --upgrade pip

到这步,你的开发环境就搭好了。后面再装具体项目的依赖。

3.6 知识体系总览

这一章的内容,我用一张图串起来。你看看就明白了。

第3章:环境搭建知识体系 环境搭建知识体系总览 第3章 环境准备 硬件与操作系统 Linux基础配置 Docker容器化 Python 3.11+ CPU 2-4核 内存 4-8GB 系统更新 + 常用工具 + 防火墙 Docker Engine + Compose Python 3.11 + venv + pip 🛠 搭建顺序 操作系统 → 基础工具 → Docker → Python → 项目虚拟环境 系统版本:Ubuntu 22.04 LTS Docker版本:24.0+ Python 3.11+

核心要点:开发环境 = 操作系统 + Docker + Python。三者缺一不可。Docker保证环境一致,Python负责逻辑实现。操作系统是地基。

3.7 检查清单

搭完别急着写代码。用这个清单过一遍。

检查项 验证命令 预期结果
系统版本 lsb_release -a Ubuntu 22.04 LTS
Docker运行 docker run hello-world Hello from Docker!
Python版本 python3 --version Python 3.11.x
虚拟环境 python3 -m venv test-venv 目录创建成功

嗯,到这儿环境就齐了。你可能觉得这一步麻烦。但我跟你说,这一步扎实了,后面能省你80%的排错时间。我自己每次新项目都从这模板走一遍,从没出过岔子。