23
0
0

Docker 安装全攻略:Ubuntu 24.04/22.04 从零部署 Docker Engine + Compose(2026 最新版)

文章摘要
|
CONTAINER FIELD GUIDE · 2026

Docker 安装全攻略

从一台干净的 Ubuntu 服务器开始,使用 Docker 官方 APT 仓库安装 Docker Engine、Buildx 与 Compose Plugin,再用一个真实 Nginx 容器完成第一次部署。

Ubuntu 24.04 / 22.04官方仓库Docker Compose适合 VPS / 云服务器
约 10 分钟完成安装与验证
Compose V2使用 docker compose
安全提示包含权限与防火墙说明
实战部署最后运行 Nginx

Docker 最迷人的地方,不是“把程序装进容器”这么简单,而是它把运行环境、依赖、启动方式一起变成了可以复制的交付单元。服务器换了、系统重装了,只要镜像和 Compose 文件还在,服务就能快速重建。

IMAGE镜像应用 + 依赖 + 环境
RUN容器镜像运行后的实例
SERVICE服务端口 + 数据卷 + 网络
0

开始前:确认系统环境

本文以 Ubuntu 24.04 LTS / 22.04 LTS 64 位服务器为主。Docker 官方当前还支持 Ubuntu 26.04 LTS,并支持 amd64、arm64 等多种架构。

bash · 查看系统
cat /etc/os-release
uname -m
whoami
推荐环境

一台全新的 Ubuntu VPS、可以使用 root,或者当前账号拥有 sudo 权限。至少预留 2 GB 磁盘空间用于 Docker 本身,实际空间取决于以后拉取的镜像。

1

清理可能冲突的旧软件包

Ubuntu 软件源里的 docker.io、旧版 docker-compose、Podman 兼容包以及独立安装的 containerd/runc,可能与 Docker 官方软件包发生冲突。先执行下面的清理命令最稳妥。

bash · remove conflicts
sudo apt remove $(dpkg --get-selections \
  docker.io docker-compose docker-compose-v2 docker-doc \
  docker-buildx podman-docker containerd runc | cut -f1)
说明

如果 APT 提示部分软件包未安装,这是正常情况。清理命令不会自动删除你原来位于 /var/lib/docker 的镜像、容器和卷数据。

2

添加 Docker 官方 APT 仓库

相比网上常见的一键脚本,生产服务器更建议走官方 APT 仓库:来源清晰、后续升级方便,而且 Docker Engine、CLI、Buildx 和 Compose 可以一起由包管理器维护。

bash · official repository
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

sudo tee /etc/apt/sources.list.d/docker.sources >/dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update
3

安装 Docker Engine + Compose

现在安装官方完整组件。这里的 docker-compose-plugin 就是现代 Compose V2,因此以后使用的是 docker compose,不是旧教程里的 docker-compose

bash · install
sudo apt install -y \
  docker-ce \
  docker-ce-cli \
  containerd.io \
  docker-buildx-plugin \
  docker-compose-plugin

docker-ce

Docker Engine 核心守护进程,真正负责创建和运行容器。

docker-ce-cli

你每天会使用的 docker psdocker run 等命令行客户端。

containerd.io

Docker 使用的底层容器运行时组件。

Buildx + Compose

现代镜像构建与多容器编排能力。

4

验证 Docker 是否真正运行

先看服务,再检查版本,最后运行 Docker 官方的 hello-world 测试镜像。

bash · verify
sudo systemctl status docker --no-pager

docker --version
docker compose version

sudo docker run --rm hello-world
$ sudo docker run --rm hello-world Hello from Docker! This message shows that your installation appears to be working correctly. [OK] Docker Engine 正常 [OK] 镜像拉取正常 [OK] 容器启动正常
看到 Hello from Docker! 即表示安装成功

此时 Docker 已经可以正式使用。Ubuntu / Debian 系列安装完成后,Docker 服务通常会自动启动。

5

可选:让普通用户无需 sudo

默认情况下 Docker Socket 由 root 管理,所以普通账号执行 Docker 命令时常常需要 sudo。你可以把当前用户加入 docker 用户组。

bash · docker group
sudo groupadd docker 2>/dev/null || true
sudo usermod -aG docker $USER
newgrp docker

docker run --rm hello-world
权限提醒

Docker 官方明确提醒:加入 docker 用户组基本等同于获得 root 级权限。多人共用服务器时不要随意给不可信用户加入该组;安全要求更高可以研究 Docker Rootless 模式。

6

第一个实战:用 Compose 启动 Nginx

Docker 装好以后,最值得马上掌握的是 Compose。我们创建一个极简 Nginx 服务,把宿主机的 8088 端口映射到容器 80 端口。

bash · project
mkdir -p ~/docker-demo
cd ~/docker-demo

新建 compose.yaml

yaml · compose.yaml
services:
  web:
    image: nginx:alpine
    container_name: docker-demo-nginx
    restart: unless-stopped
    ports:
      - "8088:80"

启动:

bash · run
docker compose up -d

docker compose ps
curl http://127.0.0.1:8088
$ docker compose ps NAME IMAGE STATUS PORTS docker-demo-nginx nginx:alpine Up 0.0.0.0:8088->80/tcp
访问地址:http://你的服务器IP:8088

如果云厂商安全组或系统防火墙没有放行 8088,外网会打不开;本机 curl 127.0.0.1:8088 正常则说明容器本身没有问题。

停止并删除容器:

bash · cleanup demo
docker compose down
7

安装完成后,建议记住这 10 条命令

命令作用
docker ps查看正在运行的容器
docker ps -a查看全部容器
docker images查看本地镜像
docker logs -f 容器名实时查看容器日志
docker restart 容器名重启容器
docker exec -it 容器名 sh进入容器 Shell
docker stats查看容器 CPU / 内存占用
docker compose up -d后台启动 Compose 项目
docker compose down停止并删除 Compose 容器/网络
docker system df查看 Docker 磁盘占用
8

生产环境中最容易忽略的两件事

端口发布与 UFW

Docker 官方提醒:容器端口发布后,流量可能绕过部分 UFW / firewalld 规则。生产环境不要只凭 UFW 输出判断端口是否安全,应该同时规划云安全组和 Docker 的 DOCKER-USER 链。

容器日志与磁盘空间

默认 json-file 日志长期运行可能越来越大。正式服务器应考虑日志轮转或切换为具备轮转能力的日志驱动。

9

Docker 更新与卸载

更新 Docker

bash · upgrade
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin

只卸载软件包

bash · uninstall
sudo apt purge docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
数据删除提醒

卸载 Docker 软件包不会自动删除镜像、容器和卷。如果你执行 sudo rm -rf /var/lib/docker /var/lib/containerd,Docker 本地数据会被永久删除。正式服务器先备份。

10

一键脚本能不能用?

Docker 官方确实提供 get.docker.com。它非常适合临时测试机、实验环境或自动初始化场景,但官方明确不建议把 convenience script 作为生产环境首选安装方式,因为它会自动做较多系统修改,并默认安装最新稳定版。

bash · convenience script
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh --dry-run
sudo sh get-docker.sh
适用场景

长期运行网站、数据库、面板的 VPS:用本文前面的官方 APT 仓库。临时开发机:一键脚本可以节省时间。

END

安装完成后的检查清单

  • docker --version 能显示版本
  • docker compose version 能显示 Compose V2
  • systemctl status docker 显示 active (running)
  • docker run --rm hello-world 能成功运行
  • 清楚 Docker 发布端口与系统防火墙的关系
  • 生产服务的数据目录已经使用 Volume / Bind Mount 持久化

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

Docker 安装全攻略:Ubuntu 24.04/22.04 从零部署 Docker Engine + Compose(2026 最新版)
/archives/docker-install-ubuntu-2026
作者
X
发布于
2026-08-29
许可协议
CC BY-NC-SA 4.0

评论

欢迎来到我的博客!