容器化通过将软件打包到隔离、轻量的环境中,改变了应用部署方式,确保了不同系统间的一致性。 Ubuntu Server 上的 Docker 是一个强大的组合,简化了这一过程,使开发人员和系统管理员能够无缝地构建、交付和运行应用。作为行业领先的容器化平台,Docker 简化了工作流,并提高了现代应用开发的可扩展性。
在本指南中,我们将引导您完成在 Ubuntu Server 上安装 Docker 并运行第一个容器化应用的步骤。无论您是 Docker 新手,还是希望优化部署过程,本教程都将帮助您开始在 Ubuntu Server 上进行容器化。
往期文章:
01. Ubuntu Server 简介 – SysOSX: AI & Cloud
02. 如何搭建您的第一台 Ubuntu 服务器:初学者指南 – SysOSX: AI & Cloud
03. 掌握 Ubuntu Server 的 Linux 命令行 – SysOSX: AI & Cloud
04. Ubuntu Server 用户与权限管理:全面指南 – SysOSX: AI & Cloud
05. Ubuntu Server 网络基础:全面指南 – SysOSX: AI & Cloud
06. 在 Ubuntu Server 上安装和管理软件:完整指南 – SysOSX: AI & Cloud
07.Ubuntu Server 的补丁更新:全面指南 – SysOSX: AI & Cloud
08. 保护您的 Ubuntu 服务器:加固与防护的实用步骤 – SysOSX: AI & Cloud
10. Ubuntu Server 系统监控工具:全面指南 – SysOSX: AI & Cloud
11. Ubuntu 服务器集中式日志记录:必读指南 – SysOSX: AI & Cloud
12. Ubuntu Server 审计与合规:最佳实践 – SysOSX: AI & Cloud
13. 搭建 Ubuntu 服务器用于托管和 Web 应用:终极指南 – SysOSX: AI & Cloud
14. 在一台 Ubuntu 服务器上托管多个网站:实用技巧 – SysOSX: AI & Cloud
15. Ubuntu Server 存储与磁盘管理:简明指南 – SysOSX: AI & Cloud
16. 在 Ubuntu Server 上搭建文件共享服务:完整指南 – SysOSX: AI & Cloud
17. 在 Ubuntu 上搭建安全的数据库服务器:MySQL 与 MariaDB 对比 – SysOSX: AI & Cloud
18. 如何在 Ubuntu Server 上配置和使用 LVM:全面指南 – SysOSX: AI & Cloud
19. KVM 虚拟化简介:面向 Ubuntu Server 的初学者指南 – SysOSX: AI & Cloud
目录
前提条件
在安装 Docker 之前,请确保您的 Ubuntu 服务器满足以下要求:
- Ubuntu 20.04 LTS 或更高版本 (64 位)。
- sudo 权限 或 root 访问权限。
- 稳定的互联网连接 ,用于下载软件包。
步骤 1:在 Ubuntu Server 上安装 Docker
更新系统软件包
sudo apt update && sudo apt upgrade -y
安装所需的依赖项
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
设置 Docker 仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装 Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
验证安装
sudo docker run hello-world
如果成功,您将看到如下确认消息 。

步骤 2:以非 root 用户管理 Docker
默认情况下,Docker 需要 sudo 权限。为避免重复输入 sudo :
- 创建 Docker 组 (如果不存在):
sudo groupadd docker - 将您的用户添加到该组:
sudo usermod -aG docker $USER - 应用更改:
newgrp docker
步骤 3:运行您的第一个容器
在几秒钟内启动 Nginx Web 服务器 :
docker run -d -p 8080:80 --name my-nginx nginx
-d:以后台模式运行。-p 8080:80:将主机端口 8080 映射到容器端口 80。--name:为容器指定自定义名称。
验证访问:
curl http://localhost:8080

步骤 4:基本 Docker 命令
| 命令 | 描述 |
|---|---|
docker ps | 列出正在运行的容器 |
docker images | 查看已下载的镜像 |
docker stop <container-id> | 停止容器 |
docker rm <container-id> | 删除容器 |
docker rmi <image-id> | 删除镜像 |
步骤 5:使用 Docker Compose 自动执行工作流
对于多容器应用,请使用 Docker Compose:
- 安装 Docker Compose:
sudo apt install docker-compose -y
- 创建
docker-compose.yml文件:
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
- 启动堆栈:
docker-compose up -d

Ubuntu 上 Docker 的最佳实践
- 定期更新 Docker:
sudo apt update && sudo apt upgrade docker-ce -y
- 清理未使用的资源:
docker system prune -a
- 使用官方镜像 (来自 Docker Hub ,以确保安全性和可靠性)。
常见问题排查
- 权限被拒绝:确保您的用户位于
docker组中。 - 端口冲突:检查是否有其他服务正在使用同一端口。
- 镜像拉取错误:验证互联网连接和镜像名称拼写。
Docker 与其他容器化工具对比
尽管 Docker 主导着容器化领域,但了解替代方案有助于为您的用例选择合适的工具:
| 工具 | 类型 | 主要特性 | 最适合 |
|---|---|---|---|
| Docker | 应用容器 | – 专注于可移植的、以应用为中心的打包<br>- 庞大的生态系统 (Docker Hub)<br>- 简单的 CLI 和 Compose | 开发人员、微服务、CI/CD 工作流 |
| LXD | 系统容器 | – 完整的操作系统环境(类似轻量级虚拟机)<br>- 与 LXC/Linux 紧密集成<br>- 高级资源管理 | 基础设施即服务、虚拟机监控程序替代品 |
| Podman | 应用容器 | – 无守护进程架构<br>- 默认无 root<br>- 与 Docker 兼容的 CLI | 注重安全的工作负载、边缘计算 |
| containerd | 容器运行时 | – 低级运行时(Docker/Kubernetes 使用)<br>- 极简设计<br>- 专注于可扩展性 | Kubernetes 集群、大规模部署 |
| CRI-O | Kubernetes 运行时 | – 针对 Kubernetes CRI 优化<br>- 轻量且安全<br>- 由 Red Hat 支持 | OpenShift/OKD 集群、Kubernetes 原生运维 |
Docker 为何依然出色
- 对初学者友好:简化了应用开发和测试的工作流。
- 可移植性:容器在 macOS、Windows 和 Linux 上运行完全一致。
- 社区支持:超过 800 万个 Docker Hub 镜像和详尽的文档。
何时考虑替代方案
- LXD:需要完整的操作系统隔离(例如,使用不同用户托管多个服务)。
- Podman:优先考虑安全性(例如,政府/医疗工作负载)。
- containerd/CRI-O:构建 Kubernetes 原生基础设施。
结论
通过遵循本指南,您已在 Ubuntu Server 上安装了 Docker 并部署了第一个容器化应用。Docker 的灵活性使其在 DevOps、云原生开发和混合环境中不可或缺。探索高级功能,例如 Docker Swarm 或 Kubernetes 集成 ,以扩展您的容器工作负载。
参考: Docker 官方文档
接下来做什么?准备探索面向 Linux 容器的 LXD
既然您已经掌握了用于应用容器化的 Docker,让我们更深入地了解 Linux 系统容器的世界吧! 敬请期待 我们即将发布的指南:
2 thoughts on “20. How to Install Docker on Ubuntu Server: A Step-by-Step Guide to Containerization”