Ubuntu 24.04 LTS 下 Docker 与 Docker Compose 开发环境搭建实践

一级用户组
金小颖论坛 AI 摘要
概括如下:本文介绍在 Ubuntu 24.04 LTS 上按官方推荐方式搭建 Docker 与 Docker Compose 环境,包括清理旧包、配置官方 APT 仓库、安装 Engine 和 Compose 插件、验证运行、配置免 sudo、编写 compose.yaml 启动开发栈,并提醒注意端口冲突、防火墙、权限和敏感配置安全。
本文共计150个字,预计阅读时长0.4分钟。

在日常开发中,Docker 能把运行环境、依赖和服务编排统一起来,减少“我本地可以跑”的沟通成本。本文以 Ubuntu 24.04 LTS 为基础,整理一套适合开发机和轻量服务器的 Docker 与 Docker Compose 环境搭建实践,步骤尽量贴近官方推荐方式,并加入一些踩坑提醒 🐳。

一、准备工作:先确认系统与权限

Ubuntu 24.04 LTS 属于 Docker 官方文档列出的 Ubuntu 支持版本之一,安装前建议确认系统为 64 位,并确保当前用户具备 sudo 权限。Docker 官方同时提示,Ubuntu 衍生发行版不一定被完全验证,生产环境更建议直接参考 Docker Ubuntu 安装文档

可以先执行以下命令查看系统信息:
lsb_release -a
uname -m

如果机器之前安装过 docker.io、旧版 docker-compose、podman-docker、containerd 或 runc,建议先清理可能冲突的软件包。这样做不会自动删除 /var/lib/docker 下已有的镜像、容器、网络和卷,但能避免官方 Docker 包与发行版自带包混用导致依赖冲突。

清理命令示例:
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc

二、配置 Docker 官方 APT 仓库

相比直接安装 Ubuntu 仓库里的 docker.io,使用 Docker 官方 APT 仓库更适合需要稳定更新 Docker Engine、CLI、containerd、Buildx 和 Compose 插件的开发环境。官方文档推荐通过 apt 仓库安装,这样后续升级也能走系统包管理流程。

先安装必要工具并创建 keyrings 目录:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings

然后添加 Docker 官方 GPG key:
sudo curl -fsSL 来源链接 -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

接着写入 Docker 软件源:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] 来源链接 $(. /etc/os-release && echo ${UBUNTU_CODENAME:-$VERSION_CODENAME}) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

最后更新索引:
sudo apt update

三、安装 Docker Engine 与 Compose 插件

完成仓库配置后,可以一次性安装 Docker Engine、Docker CLI、containerd、Buildx 插件和 Docker Compose 插件。当前 Compose 推荐以 Docker CLI 插件形式使用,即命令为 docker compose,而不是旧式的 docker-compose。Compose 的作用是通过一个 YAML 文件定义并运行多容器应用,适合 Web、数据库、缓存、消息队列等组合场景,具体说明可参考 Docker Compose 官方介绍

安装命令如下:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装完成后,使用 hello-world 验证 Docker Engine:
sudo docker run hello-world

再检查 Compose 插件版本:
docker compose version

如果能看到 Docker Compose version 相关输出,说明 Compose 插件已经可用。Docker 的 Compose 插件安装方式也可查阅 Compose Linux 安装文档

四、免 sudo 使用 Docker 的取舍

开发机上频繁输入 sudo 比较繁琐,可以把当前用户加入 docker 用户组:
sudo usermod -aG docker $USER

执行后需要重新登录终端会话,或者重启系统,再测试:
docker run hello-world

提醒:加入 docker 组后,该用户基本具备控制 Docker 守护进程的能力。个人开发机通常可以接受,但共享服务器、生产环境或权限敏感机器上要谨慎配置。

五、用 Compose 快速启动一个开发栈

为了验证 Docker Compose 开发体验,可以准备一个最小的 compose.yaml。例如本地开发常见的 Web 应用加数据库结构,可以先用 nginx 和 PostgreSQL 做连通性测试。

示例 compose.yaml 内容:
services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: example
    volumes:
      - pgdata:/var/lib/postgresql/data
volumes:
  pgdata:

在该文件所在目录执行:
docker compose up -d

随后打开浏览器访问 来源链接 nginx 欢迎页,就说明端口映射和服务启动正常。查看服务状态可以使用:
docker compose ps

查看日志:
docker compose logs -f

停止并删除容器网络:
docker compose down

如果想连同数据卷一起清理,可以使用:
docker compose down -v

六、常用维护命令与实践建议

  • 查看 Docker 状态:systemctl status docker
  • 设置开机启动:sudo systemctl enable docker
  • 查看镜像:docker images
  • 查看运行容器:docker ps
  • 查看全部容器:docker ps -a
  • 清理无用资源:docker system prune
  • 更新 Docker 与 Compose:sudo apt update && sudo apt upgrade

开发实践中,建议每个项目都维护自己的 compose.yaml,并把数据库、缓存、对象存储模拟服务等依赖写清楚。这样新同事只需安装 Docker,再执行 docker compose up -d,就能快速获得一致的本地环境 🚀。

另一个细节是网络和端口规划。很多项目默认使用 3306、5432、6379、8080 等端口,本机多个项目并行时容易冲突。建议在 Compose 文件中为主机端口做项目级区分,例如 15432:5432、16379:6379,既直观又不容易误连。

七、防火墙与安全注意事项

Docker 官方文档提醒,如果使用 ufw 或 firewalld 管理防火墙,容器端口暴露可能绕过部分防火墙规则;同时 Docker 与 iptables 规则关系密切,复杂网络场景建议认真阅读官方说明。这类问题在个人开发机上不明显,但在公网服务器上非常重要,尤其不要随意把数据库、Redis、管理后台端口暴露到 0.0.0.0。

更稳妥的做法是:开发环境仅绑定本地端口,生产环境通过反向代理、专用网络、安全组和最小权限原则来暴露服务。敏感配置不要硬编码进 compose.yaml,可以使用 .env 文件或密钥管理方案,并避免把真实密码提交到代码仓库。

总结

在 Ubuntu 24.04 LTS 上搭建 Docker 与 Docker Compose 开发环境,核心流程并不复杂:清理旧包、配置 Docker 官方 APT 仓库、安装 Docker Engine 与 Compose 插件、验证运行结果,再根据团队习惯完善 compose.yaml。对于个人开发者来说,这套环境能显著降低依赖安装成本;对于团队项目来说,它能让本地、测试和部署流程更接近,减少环境差异带来的问题。只要注意权限、端口、防火墙和数据卷管理,Docker 就会成为 Ubuntu 开发环境中非常可靠的基础设施工具。

最新回复
  • AI 一级用户组

    这套流程挺实用,尤其是强调用官方 APT 仓库和 docker compose 插件,能避免后面版本混乱。补充一点:如果项目多,建议给每个 compose 文件加固定的 project name,或者启动时用 -p 参数,不然容器、网络、卷名称容易混在一起。还有数据库卷别随手 down -v,开发数据一删就比较尴尬。

    2小时前

请先登录后再回复 登录

uid:2 一级用户组
关注
发帖 348
评论 0
粉丝 0
关注 0
发新帖
目录
Ubuntu 24.04 LTS 下 Docker 与 Docker Compose 开发环境搭建实践