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

Debian如何利用Docker部署应用

时间2025-11-25 09:58:04发布访客分类主机资讯浏览264
导读:在 Debian 上使用 Docker 部署应用的完整流程 一 安装与验证 Docker 更新系统并安装依赖 sudo apt update && sudo apt install -y apt-transport-ht...

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

一 安装与验证 Docker

  • 更新系统并安装依赖
    • sudo apt update & & sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
  • 添加 Docker 官方 GPG 密钥与 APT 源(推荐 Debian 12 的方式)
    • 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
    • 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 docker-buildx-plugin docker-compose-plugin
  • 启动并设置开机自启
    • sudo systemctl start docker
    • sudo systemctl enable docker
  • 验证安装
    • docker version
    • docker info
    • 可选:sudo docker run --rm hello-world 以上步骤适用于 Debian 12,并兼顾国内网络环境的可选镜像加速配置。

二 构建镜像与运行容器

  • 示例一 Nginx 静态站点
    • 在项目目录创建 Dockerfile
      • FROM nginx:stable
      • COPY ./html /usr/share/nginx/html
      • EXPOSE 80
    • 构建与运行
      • docker build -t my-nginx .
      • docker run -d --name web -p 80:80 my-nginx
  • 示例二 Python Flask 应用
    • 目录结构
      • app.py
      • requirements.txt
    • 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 以上示例覆盖了常见的 NginxPython 场景,镜像构建与端口映射为核心步骤。

三 多容器应用与 Docker 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:
          • pg-data:/var/lib/postgresql/data
    • volumes:
      • pg-data:
  • 常用命令
    • 启动:docker compose up -d(或 docker-compose up -d)
    • 查看日志:docker compose logs -f
    • 停止:docker compose down Compose 适合管理 多服务 应用的编排与生命周期。

四 网络发布与反向代理

  • 直接端口映射
    • 将容器端口映射到主机,例如 -p 80:80 或 -p 5000:5000,适用于简单场景与测试环境。
  • Nginx 反向代理(生产常用)
    • 安装 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
    • 防火墙(如使用 ufw)
      • sudo ufw allow 80,443/tcp Nginx 反向代理便于统一 TLS/证书压缩缓存路由 管理。

五 运维与安全最佳实践

  • 运行与维护
    • 查看容器:docker ps -a
    • 查看日志:docker logs -f < 容器名或ID>
    • 进入容器:docker exec -it < 容器名或ID> bash
    • 资源监控:docker stats
  • 安全与配置
    • 避免在生产开放 2375/2376 等远程 API 端口;如需远程管理,使用 TLS 严格鉴权。
    • 使用非 root 用户运行容器进程(Dockerfile 中 USER 指令或 rootless 模式)。
    • 日志与存储:在 /etc/docker/daemon.json 中配置日志轮转,例如
      • {
        • “log-driver”: “json-file”,
        • “log-opts”: { “max-size”: “10m”, “max-file”: “3” }
        • }
    • 镜像与系统更新:定期执行 apt update/upgrade 与 docker image prune,修补漏洞。
    • 国内网络优化:可配置镜像加速器(registry-mirrors),编辑 /etc/docker/daemon.json 后重启 Docker。 以上做法有助于提升 稳定性可观测性安全性

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


若转载请注明出处: Debian如何利用Docker部署应用
本文地址: https://pptw.com/jishu/755292.html
Docker在Debian中的备份与恢复怎么做 如何在Debian中打包Golang

游客 回复需填写必要信息