20. 如何在 Ubuntu Server 上安装 Docker:容器化分步指南

容器化通过将软件打包到隔离、轻量的环境中,改变了应用部署方式,确保了不同系统间的一致性。 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

09. Ubuntu 服务器审计与日志记录

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 :

  1. 创建 Docker 组 (如果不存在): sudo groupadd docker
  2. 将您的用户添加到该组: sudo usermod -aG docker $USER
  3. 应用更改: 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-OKubernetes 运行时– 针对 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 系统容器的世界吧! 敬请期待 我们即将发布的指南:

“面向 Linux 容器的 LXD 简介:轻量级虚拟化变得简单“

2 thoughts on “20. How to Install Docker on Ubuntu Server: A Step-by-Step Guide to Containerization”

发表评论