下面给你一套从零用 Debian + Docker 部署服务的通用流程,适用于 Web 服务、后端 API、脚本任务等。你可以按需替换示例内容。
确保系统更新:
sudo apt update && sudo apt upgrade -y
官方推荐方式(更干净):
# 安装依赖
sudo apt install -y ca-certificates curl gnupg
# 添加 Docker 官方 GPG
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# 添加源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(. /etc/os-release && echo $VERSION_CODENAME) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo docker run hello-world
适合临时环境或调试:
docker run -it debian:12 bash
示例:部署一个 Python 服务
myapp/
├── Dockerfile
├── app.py
└── requirements.txt
FROM debian:12
RUN apt update && apt install -y \
python3 \
python3-pip \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY . /app
RUN pip3 install -r requirements.txt
CMD ["python3", "app.py"]
docker build -t myapp .
docker run -d -p 8080:8080 myapp
version: "3.8"
services:
web:
build: .
ports:
- "8080:8080"
restart: always
运行:
docker compose up -d
✅ 使用非 root 用户运行容器
✅ 数据目录挂载 volume
✅ 配置 restart: always
✅ 配合 Nginx + HTTPS(可选)
示例(挂载数据):
docker run -d \
-v /data/myapp:/app/data \
-p 8080:8080 \
myapp
| 场景 | 建议 |
|---|---|
| Web 服务 | Debian + Nginx + Docker |
| 数据库 | 官方镜像 + volume |
| 定时任务 | Debian + cron + Docker |
| 微服务 | Docker Compose / K8s |
如果你有具体要部署的东西(如 Next.js、Java、MySQL、内网服务),告诉我,我可以给你精确 Dockerfile + 部署方案。