如何在 Ubuntu 26.04+ 上 30 秒内安装 docker 和 docker-compose

注意: 本文是旧版指南如何在 30 秒内于 Ubuntu 上安装 docker 和 docker-compose的更新版本,针对 Ubuntu 26.04+ 采用基于 keyring 的现代仓库配置方式进行了适配。

使用我们的脚本:

install_docker_compose.sh
wget -qO- https://techoverflow.net/scripts/install-docker-2026.sh | sudo bash /dev/stdin

完成后,请注销并重新登录(或关闭 SSH 会话后重新连接)。否则你只能以 root 身份运行 docker 客户端——参见解决连接 Docker daemon socket 时出现的 Docker 权限被拒绝问题

或者手动安装:

将以下命令块复制并粘贴到你的 Linux shell 中。每次只能复制粘贴一个代码块,等上一个块执行完毕后再粘贴下一个!

install_prereqs.sh
# 安装前置依赖
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common gnupg
install_docker_cmds.sh
# 使用现代 keyring 目录添加 docker 的软件包签名密钥
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
# 使用现代 signed-by 标签添加仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装最新稳定版 docker 以及现代 CLI 插件
sudo apt-get update
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
install_docker_compose_steps.sh
# 安装独立版 docker-compose v2 二进制文件
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -oP '"tag_name": "\K[^"]+')
sudo curl -L "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod a+x /usr/local/bin/docker-compose
# 启用并启动 docker
sudo systemctl enable docker
sudo systemctl start docker

注意,Docker 会以 deb 软件包形式安装,而 docker-compose 会下载到 /usr/local/bindocker-compose-plugin 软件包还提供了 docker compose 子命令。

如果你希望以普通用户身份使用 docker(即不使用 sudo),可以将该用户加入 docker 组(建议这样做):

add_user_docker.sh
sudo usermod -a -G docker $USER

此设置需要注销并重新登录(或完全终止 SSH 会话后打开新的 SSH 会话)才能生效。

如果这样做后仍然出现 permission denied 错误,请尝试重启计算机。

要检查当前用户是否属于 docker 组,请运行

check-groups.sh
groups

示例输出:

groups_output.txt
uli adm tty lp uucp dialout cdrom sudo dip plugdev lpadmin sambashare vboxusers lxd docker

以上是你当前用户所属的全部组(如前所述,更改只有在注销并重新登录、或终止并重新打开 SSH 会话后才会生效)。如果 groups 的输出中列出了 docker(提示:刚添加时通常在末尾附近!),你就可以访问 docker socket 了。有关 docker socket 及其权限的更多详情,请参阅解决连接 Docker daemon socket 时出现的 Docker 权限被拒绝问题中的背景信息部分。


Check out similar posts by category: Container, Docker, Linux