详细图解 Ubuntu 安装 Docker – wiki词典


详细图解 Ubuntu 安装 Docker

Docker 已经成为现代软件开发和部署不可或缺的工具。它允许开发者将应用程序及其所有依赖项打包到一个独立的容器中,从而确保应用程序在任何环境中都能一致运行。本教程将详细介绍如何在 Ubuntu 操作系统上安装 Docker Engine。


1. 什么是 Docker?为什么需要它?

Docker 是一个开源平台,用于开发、发布和运行应用程序。它通过使用容器化技术,将应用程序及其运行所需的所有组件(代码、运行时、系统工具、系统库等)打包到一个轻量级、可移植的单元中。

为什么需要 Docker?

  • 环境一致性: 解决了“在我的机器上能运行”的问题,确保开发、测试和生产环境的一致性。
  • 快速部署: 容器启动速度快,部署效率高。
  • 资源隔离: 每个容器都运行在独立的进程中,与其他容器和主机隔离,提高了安全性。
  • 可移植性: 打包好的容器可以在任何支持 Docker 的机器上运行,无需担心底层操作系统的差异。
  • 版本控制: 可以像代码一样对 Docker 镜像进行版本控制和管理。

2. 环境准备与先决条件

在开始安装之前,请确保您的 Ubuntu 系统满足以下条件:

  • 操作系统: Ubuntu 20.04 LTS (Focal Fossa) 或更高版本。本教程以 Ubuntu 22.04 LTS 为例。
  • 用户权限: 拥有 sudo 权限的用户账户。
  • 互联网连接: 安装过程中需要下载软件包。

准备工作:

打开您的 Ubuntu 终端(可以通过按下 Ctrl + Alt + T 快捷键)。


3. 安装 Docker Engine

我们将通过 Docker 官方存储库来安装 Docker Engine,这是推荐且最稳定的安装方式。

步骤 3.1:更新包索引并安装必要依赖

首先,更新您的本地包索引,并安装一些必要的软件包,这些软件包允许 apt 通过 HTTPS 使用存储库。

命令:

bash
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release -y

图解想象:

  • sudo apt update 执行中: 终端会显示正在从各种存储库下载包列表的信息,例如 Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease 等。
  • sudo apt install ... 执行中: 终端会显示正在解析依赖关系、选择安装包、下载和安装软件包的进度条和信息。例如:Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 ca-certificates all 20230311ubuntu0.22.04.1 [145 kB]

步骤 3.2:添加 Docker 的官方 GPG 密钥

Docker 使用 GPG 密钥来验证其软件包的真实性。您需要将 Docker 的官方 GPG 密钥添加到您的系统。

命令:

bash
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

图解想象:

  • sudo mkdir -m 0755 -p /etc/apt/keyrings 执行中: 终端可能不会有输出,表示目录已成功创建或已存在。
  • curl -fsSL ... | sudo gpg ... 执行中: 终端同样可能不会有明显输出,但命令成功执行后,Docker 的 GPG 密钥文件 docker.gpg 将会存在于 /etc/apt/keyrings/ 目录下。您可以使用 ls -l /etc/apt/keyrings/ 查看。

步骤 3.3:设置 Docker 存储库

接下来,将 Docker 稳定版的存储库添加到 APT 源列表中。

命令:

bash
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

图解想象:

  • 命令执行中: 这条命令会创建或修改 /etc/apt/sources.list.d/docker.list 文件。终端通常不会有输出,因为它将输出重定向到了 /dev/null
  • 验证(可选): 您可以使用 cat /etc/apt/sources.list.d/docker.list 命令来查看该文件的内容,确认 Docker 存储库已正确添加。内容应类似于:deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable (其中 jammy 对应您的 Ubuntu 版本)。

步骤 3.4:再次更新包索引

在添加了新的存储库之后,需要再次更新 apt 包索引,以便系统能够识别并获取 Docker 存储库中的软件包。

命令:

bash
sudo apt update

图解想象:

  • sudo apt update 执行中: 终端会显示正在从所有配置的存储库(包括新添加的 Docker 存储库)下载包列表。您应该会看到类似 Get:6 https://download.docker.com/linux/ubuntu jammy InRelease [48.8 kB] 的输出。

步骤 3.5:安装 Docker Engine、CLI 和 Containerd

现在,您可以安装 Docker Engine、Docker CLI (命令行接口) 和 Containerd (容器运行时)。

命令:

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

图解想象:

  • sudo apt install ... 执行中: 终端会显示下载和安装 Docker 相关软件包的详细进度。这可能需要一些时间,取决于您的网络速度。例如:Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 docker-ce-cli amd64 5:24.0.7-1~ubuntu.22.04~jammy [13.2 MB]
  • 安装完成: 终端会回到命令提示符,表示安装成功。Docker 服务应该会自动启动。

步骤 3.6:验证 Docker 安装

为了确保 Docker 已成功安装并正在运行,您可以运行官方提供的 hello-world 镜像。

命令:

bash
sudo docker run hello-world

图解想象:

  • sudo docker run hello-world 执行中:
    • 如果 hello-world 镜像不在本地,Docker 会显示正在下载镜像的进度:Unable to find image 'hello-world:latest' in the local cache... Pulling from library/hello-world...
    • 下载完成后,Docker 会运行容器并输出一条欢迎信息:
      Hello from Docker!
      This message shows that your installation appears to be working correctly.
      ...
    • 最后,终端会显示容器成功运行并退出的信息。

如果您看到类似上述的“Hello from Docker!”消息,那么恭喜您,Docker 已成功安装并正常工作!


4. 后续配置(推荐)

为了更方便地使用 Docker,建议进行以下配置。

步骤 4.1:将当前用户添加到 docker 用户组(非必需但强烈推荐)

默认情况下,docker 命令需要 sudo 权限才能运行。这可能会很不方便。将您的用户添加到 docker 用户组后,您就可以在不使用 sudo 的情况下运行 docker 命令。

命令:

bash
sudo usermod -aG docker $USER

图解想象:

  • 命令执行中: 终端不会有输出。
  • 生效: 这条命令会将当前用户($USER 环境变量代表您当前的用户名)添加到 docker 组中。您需要注销并重新登录(或重启系统)才能使更改生效。
  • 验证: 重新登录后,尝试再次运行 docker run hello-world,这次不带 sudo
    bash
    docker run hello-world

    如果能够正常运行,说明配置成功。

步骤 4.2:配置 Docker 开机自启动

Docker 服务在安装时通常会自动配置为开机自启动。您可以使用以下命令验证其状态:

验证命令:

bash
sudo systemctl status docker

图解想象:

  • sudo systemctl status docker 输出:
    • 您会看到详细的服务状态信息。关键是查看 Active: active (running) 这一行,这表示 Docker 服务正在运行。
    • enabled 则表示已配置为开机自启动。
    • 例如:
      ● docker.service - Docker Application Container Engine
      Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
      Active: active (running) since Fri 2026-01-09 10:30:00 UTC; 5min ago
      Docs: https://docs.docker.com
      Main PID: 1234 (dockerd)
      Tasks: 10
      Memory: 45.6M
      CPU: 123ms
      CGroup: /system.slice/docker.service
      └─1234 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

如果 Active 显示为 active (running)Loaded 行显示 enabled,则无需额外操作。如果未 enabled,可以使用以下命令启用:

启用命令(如果需要):

bash
sudo systemctl enable docker

图解想象:

  • sudo systemctl enable docker 执行中: 终端可能会输出类似 Created symlink /etc/systemd/system/multi-user.target.wants/docker.service -> /lib/systemd/system/docker.service. 的信息,表示已创建自启动链接。

5. 基本 Docker 命令(快速入门)

  • 查看 Docker 版本:
    bash
    docker version
  • 查看正在运行的容器:
    bash
    docker ps
  • 查看所有容器(包括已停止的):
    bash
    docker ps -a
  • 拉取镜像:
    bash
    docker pull ubuntu:latest
  • 运行容器:
    bash
    docker run -it ubuntu /bin/bash

    -it 允许您进入容器的交互式 shell)
  • 列出本地镜像:
    bash
    docker images
  • 停止容器:
    bash
    docker stop <container_id_or_name>
  • 删除容器:
    bash
    docker rm <container_id_or_name>
  • 删除镜像:
    bash
    docker rmi <image_id_or_name>

6. 总结

通过本教程,您已经成功在 Ubuntu 系统上安装了 Docker Engine,并进行了基本的配置和验证。现在,您已经拥有了一个强大的容器化平台,可以开始构建、部署和管理您的应用程序了。

探索 Docker 的更多功能,例如 Docker Compose 用于多容器应用管理,以及 Dockerfile 用于构建自定义镜像。祝您使用 Docker 愉快!


滚动至顶部