Docker部署实战:从自动化安装到Compose多容器编排的完整教程

Docker已经成为现代运维与开发部署的标配。本文整理一套可复用的Docker部署实践,从环境安装到多容器编排,一步步带你跑通。

一、自动化安装 Docker Engine

推荐使用”存储库+包管理器”的方式安装,适配Ubuntu/Debian/CentOS/RHEL等主流系统:

# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc

# 安装依赖
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg

# 添加官方GPG密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/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/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list

# 安装
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# 加入docker组,免sudo
sudo usermod -aG docker $USER

国内服务器建议配置镜像加速源,可以显著提升拉取速度。

二、用 Docker Compose 编排多容器

单容器用docker run还行,但一旦涉及数据库、缓存、应用多个容器,就必须上Compose。核心是把所有服务写进docker-compose.yml:

services:
  app:
    image: myapp:latest
    ports:
      - "8080:8080"
    environment:
      - DB_HOST=db
    depends_on:
      - db
  db:
    image: mysql:8.0
    environment:
      - MYSQL_ROOT_PASSWORD=changeme
    volumes:
      - ./data:/var/lib/mysql

然后一条命令启动全部:

docker compose up -d

三、部署与升级的简化思路

一个非常实用的原则是:把配置和代码分开。

  • 代码/镜像可以随时升级
  • 配置通过挂载卷(volumes)或环境变量注入
  • 升级时只换镜像,配置从备份恢复

升级流程:停服务 → 备份数据 → 拉新镜像 → 启动 → 验证。这样即使升级失败,也能快速回滚。

四、常见避坑

  • 数据持久化:容器删除后数据会丢,务必挂载卷
  • 网络隔离:用自定义网络,别全部用host模式
  • 日志管理:配置日志轮转,避免磁盘被日志撑爆
  • 端口冲突:启动前检查端口占用

掌握以上基础,你就能把大部分自托管服务(如博客、网盘、监控、数据库)用Docker优雅地跑起来。

© 版权声明
THE END
喜欢就支持一下吧
点赞24 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容