docker 环境搭建

🐧 Ubuntu 下 Docker 环境一键部署指南

这是一份在 [[Linux]] 发行版 Ubuntu 上安装 [[Docker]] 官方社区版 (Docker-CE) 的完整指南。我们将通过分步详解和最终的一键脚本,实现一个干净、快速的 [[Docker]] 环境搭建。

[!NOTE] 为什么要使用官方仓库? 使用 Docker 官方的 apt 仓库可以确保你获得最新、最安全的版本,并能方便地安装 [[Docker Compose]] 等官方插件。


🛠️ 分步详解:Docker 安装全过程

第一步:清理旧环境

一个最佳实践是先清理系统中可能存在的旧版本或冲突的容器运行时,以避免潜在问题。

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
  • 说明: 这个 for 循环会尝试卸载一系列已知的旧版 Docker 相关软件包。即使某个包未安装,命令也会安全地跳过。

第二步:设置 Docker 的官方 APT 仓库

这是整个过程中最核心的一步,目的是让系统信任并从 Docker 官方源下载软件。

1. 安装基础依赖

我们需要 curl 来下载文件,gnupg 来处理密钥。

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

2. 添加 Docker 官方 GPG 密钥

[!TIP] GPG 密钥的作用? GPG (GNU Privacy Guard) 密钥用于对软件包进行数字签名。添加 Docker 的官方密钥后,我们的系统在安装 Docker 软件包时会进行验证,确保软件包来自官方且在传输过程中未被篡改,这是保障系统安全的关键一步。

# 创建用于存放密钥的目录
sudo install -m 0755 -d /etc/apt/keyrings

# 下载 GPG 密钥并存放到指定位置
curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg) | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 赋予密钥文件可读权限
sudo chmod a+r /etc/apt/keyrings/docker.gpg

3. 将 Docker 仓库写入系统源列表

这条命令会自动检测你的系统架构和 Ubuntu 版本代号,生成对应的仓库配置。

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] [https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu) \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • $(dpkg --print-architecture): 动态获取系统架构, 如 amd64
  • $(. /etc/os-release && echo "$VERSION_CODENAME"): 动态获取 Ubuntu 版本代号, 如 jammy

第三步:安装 Docker 引擎

现在万事俱备,可以正式安装 Docker 了。

# 再次更新 apt 包索引,以加载刚刚添加的 Docker 仓库
sudo apt-get update

# 安装 Docker 引擎、CLI、containerd 和其他关键插件
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

第四步:配置用户权限

默认情况下,docker 命令需要 sudo 权限。为了方便日常使用,我们将当前用户添加到 docker 用户组。

sudo usermod -aG docker $USER

[!IMPORTANT] 必须重新登录! 执行此命令后,你必须完全退出当前终端会话并重新登录 (或者直接重启系统),用户组的变更才会生效。否则你仍然会遇到权限不足的错误。


✅ 验证安装

重新登录后,运行经典的 hello-world 镜像来验证 Docker 是否安装成功。

docker run hello-world

如果一切正常,你将看到来自 Docker 的欢迎信息。

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

🚀 一键部署脚本 (Gist)

我们将上述所有步骤整合到了一个 Shell 脚本中,你可以通过 curl 直接下载并执行。

[!WARNING] 安全提示 从网络通过管道 (|) 直接执行脚本是一种高效但有潜在风险的操作。在生产环境或处理敏感数据的机器上,强烈建议先审查脚本内容,再执行。

一键安装命令:

curl -fsSL https://gist.githubusercontent.com/luyoungcn/706898e7d33543160b96023c46d8acc3/raw/fac1b8893b5ddd9ad7c883b32145fdb00047c9a4/install-docker-ubuntu.sh | sh

脚本源地址: https://gist.github.com/706898e7d33543160b96023c46d8acc3


📚 相关概念

  • [[Containerization]]
  • [[Docker Images and Containers]]
  • [[Dockerfile]]
  • [[Docker Compose]]

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg



echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


sudo apt-get update


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


sudo usermod -aG docker $USER