在 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 部署的最大优势 ------ 环境隔离、快速迁移、可重复构建

相关推荐
syc789012317 分钟前
中文语境下AI编码工具实战对比:从迭代体验看日常开发选择
linux·人工智能·ubuntu
凡人叶枫34 分钟前
Effective C++ 条款22:将成员变量声明为 private
linux·开发语言·c++
vsropy3 小时前
Ubuntu网络图标消失问题/有网络问号
linux·运维·ubuntu
coderwu3 小时前
Ubuntu 24.04 终端输入 openclaw config 提示未找到命令解决办法
linux·运维·ubuntu
云原生指北3 小时前
Apple Container Machine:把 Linux 搬进 Mac
macos·docker
凡人叶枫5 小时前
Effective C++ 条款28:避免使用 handles 指向对象内部
linux·服务器·开发语言·c++·嵌入式开发
AI帮小忙5 小时前
Debian系linux操作系统里安装OpenClaw
linux·运维·debian
极创信息5 小时前
Linux挖矿病毒深度清理实战教程,从进程隐藏、Rootkit驻留到彻底根除
java·大数据·linux·运维·安全·tomcat·健康医疗
weixin_307779136 小时前
Python写入Shell文件使用Linux系统的换行符
linux·开发语言·python·自动化
liulilittle7 小时前
Linux Swap 文件配置与持久化(虚拟内存)
linux·运维·服务器