在 Ubuntu 上通过 Docker 与 Docker Compose 部署项目的完整指南

在实际项目开发与运维中,很多人都会选择 Docker + Docker Compose 来部署应用。这样可以避免在宿主机上安装一大堆依赖,做到"一次构建,到处运行"。

本文将详细介绍在 Ubuntu 环境下如何安装所需的依赖,并使用 Docker Compose 来启动项目。


一、为什么选择 Docker + Compose 部署?

  • 隔离性:每个项目依赖运行在自己的容器中,互不影响

  • 可移植性:换服务器只需拉取镜像和配置文件即可快速启动

  • 易扩展:多服务(如 Django + MySQL + Redis)可通过 Compose 一键编排

  • 运维友好:统一日志、统一管理,方便排查


二、安装必要的系统组件

在 Ubuntu 上部署前,我们只需要在宿主机安装 Docker 引擎Docker Compose。应用本身的依赖都会在容器内部安装。

1. 安装 Docker 引擎

复制代码
# 更新 apt 包索引
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

# 添加 Docker 官方 GPG key
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 添加 Docker 软件源
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu $(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 --version

2. 安装 Docker Compose 插件

新版推荐使用 docker compose 插件(注意不带中划线),而不是旧版 docker-compose

复制代码
sudo apt install -y docker-compose-plugin

验证:

复制代码
docker compose version

如果项目使用了旧版命令,也可以额外安装:

复制代码
sudo apt install -y docker-compose

3. 可选工具

  • git:方便从代码仓库拉取项目

    复制代码
    sudo apt install -y git
  • make :如果项目提供了 Makefile,可以简化部署命令

    复制代码
    sudo apt install -y make

三、项目内部需要准备的文件

在宿主机只需要安装 Docker 和 Compose,项目依赖(如 Django、数据库驱动、Node 模块)都在容器内安装

常见文件包括:

  • Dockerfile:定义如何构建镜像(如安装 Python、Django、依赖等)

  • docker-compose.yml:编排多个服务(Web、数据库、Redis 等)

  • requirements.txt / package.json:项目依赖清单,由容器内部安装


四、部署流程

假设已经准备好了项目文件,常见的部署步骤如下:

复制代码
# 1. 拉取项目代码
git clone https://github.com/xxx/yourproject.git
cd yourproject

# 2. 构建并启动容器服务
docker compose up -d --build

# 3. 查看服务运行状态
docker compose ps

# 4. 查看日志输出
docker compose logs -f

此时,项目就已经运行在容器里了。


五、总结

在 Ubuntu 环境下,使用 Docker 部署项目只需要在宿主机安装几个核心组件:

  • docker-ce

  • docker-ce-cli

  • containerd.io

  • docker-compose-plugin

可选:gitmake

所有应用相关依赖都会在容器内部通过 Dockerfilerequirements.txt 安装,宿主机保持干净。

这也是 Docker 部署的最大优势 ------ 环境隔离、快速迁移、可重复构建

相关推荐
chlk1232 小时前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑3 小时前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件3 小时前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
深紫色的三北六号13 小时前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash17 小时前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
小p21 小时前
docker学习7:docker 容器的通信方式
docker
小p1 天前
docker学习5:提升Dockerfile水平的5个技巧
docker
小p1 天前
docker学习3:docker是怎么实现的?
docker
哈基咪怎么可能是AI1 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行2 天前
Linux和window共享文件夹
linux