首页主机资讯Debian Docker如何部署应用

Debian Docker如何部署应用

时间2025-11-27 09:19:03发布访客分类主机资讯浏览1502
导读:在 Debian 上使用 Docker 部署应用的完整流程 一 安装与准备 更新系统并安装依赖 sudo apt update && sudo apt install -y apt-transport-https ca...

在 Debian 上使用 Docker 部署应用的完整流程


一 安装与准备

  • 更新系统并安装依赖
    • sudo apt update & & sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
  • 添加 Docker 官方 GPG 密钥与软件源(推荐 Debian 12 的方式)
    • sudo install -m0755 -d /etc/apt/keyrings
    • curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    • echo “deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • 安装 Docker 引擎
    • sudo apt update & & sudo apt install -y docker-ce docker-ce-cli containerd.io
  • 启动并设置开机自启
    • sudo systemctl start docker & & sudo systemctl enable docker
  • 验证安装
    • docker version 或 docker run --rm hello-world
  • 可选 安装 Docker Compose 插件(推荐)
    • sudo apt install -y docker-compose-plugin
  • 可选 国内网络加速(编辑 /etc/docker/daemon.json)
    • { “registry-mirrors”: [“https://< 你的镜像加速地址> ”] }
    • 修改后执行:sudo systemctl restart docker

二 构建镜像与运行容器

  • 示例一 直接运行官方镜像(Nginx 静态站点)
    • docker run -d --name web -p 80:80 nginx:latest
  • 示例二 使用 Dockerfile 构建 Python Flask 应用
    • 目录结构
      • app.py
      • requirements.txt
      • Dockerfile
    • app.py
      • from flask import Flask app = Flask(name) @app.route(“/”) def hello(): return “Hello, Docker on Debian!” if name == “main”: app.run(host=“0.0.0.0”, port=5000)
    • requirements.txt
      • flask
    • Dockerfile
      • FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . EXPOSE 5000 CMD [“python”, “app.py”]
    • 构建与运行
      • docker build -t flask-web-app .
      • docker run -d --name flask -p 5000:5000 flask-web-app
  • 常用管理命令
    • 查看:docker ps -a
    • 日志:docker logs -f flask
    • 进入:docker exec -it flask bash
    • 停止/启动/删除:docker stop|start|rm flask

三 多服务与 Compose 编排

  • 示例 docker-compose.yml(Flask + PostgreSQL)
    • version: “3.8” services: web: build: . ports: - “5000:5000” environment: - POSTGRES_DB=appdb - POSTGRES_USER=app - POSTGRES_PASSWORD=secret depends_on: - db db: image: postgres:15 environment: - POSTGRES_DB=appdb - POSTGRES_USER=app - POSTGRES_PASSWORD=secret volumes: - pgdata:/var/lib/postgresql/data volumes: pgdata:
  • 启动与常用操作
    • 启动:docker compose up -d(或 docker-compose up -d)
    • 查看日志:docker compose logs -f
    • 停止:docker compose down
  • 说明
    • 生产环境建议为数据库设置强密码、持久化卷,并考虑使用 secrets 管理敏感信息。

四 反向代理与域名访问

  • 安装 Nginx
    • sudo apt install -y nginx
  • 配置反向代理(/etc/nginx/sites-available/app.conf)
    • server { listen 80; server_name app.example.com; location / { proxy_pass http://127.0.0.1:5000; 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; } }
  • 启用站点并热重载
    • sudo ln -s /etc/nginx/sites-available/app.conf /etc/nginx/sites-enabled/
    • sudo nginx -t & & sudo systemctl reload nginx
  • 防火墙与 DNS
    • 开放端口:sudo ufw allow 80,443/tcp
    • DNS 添加 A 记录:将 app.example.com 指向服务器公网 IP

五 安全与运维最佳实践

  • 以非 root 用户运行容器(将用户加入 docker 组后使用 docker 命令)
    • sudo usermod -aG docker $USER(重新登录生效)
  • 镜像与系统持续更新(安全补丁)
    • 定期执行:sudo apt update & & sudo apt upgrade -y 与 docker image prune -f
  • 日志与存储
    • 配置日志轮转(/etc/docker/daemon.json):
      • { “log-driver”: “json-file”, “log-opts”: { “max-size”: “10m”, “max-file”: “3” } }
  • 网络安全
    • 仅暴露必要端口,使用 UFW 或云安全组限制来源 IP
    • 数据库等敏感服务不对外映射端口,仅内网访问
  • 敏感信息管理
    • 使用环境变量或 Docker Secrets 管理密码与密钥,避免硬编码

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian Docker如何部署应用
本文地址: https://pptw.com/jishu/757581.html
Debian Minimal如何进行系统更新 Debian Minimal的启动速度有多快

游客 回复需填写必要信息