安装背景与准备
Ubuntu 24.04(代号 Noble Numbat)是 2024 年 4 月发布的 LTS 版本,适合服务器和开发环境。官方推荐的方法是通过 Docker 提供的官方仓库安装,以确保获取最新稳定版本。
首先,更新系统包索引以获取最新软件包信息:
代码语言:javascript
sudo apt update然后安装必要的依赖包,包括 curl、apt-transport-https、ca-certificates 和 software-properties-common,这些工具用于安全地添加和验证外部仓库:
代码语言:javascript
sudo apt install curl apt-transport-https ca-certificates software-properties-common这些步骤确保系统准备就绪,可以安全地添加 Docker 仓库。
添加 Docker 官方仓库
为了确保安装的 Docker 是官方版本且最新,需要添加 Docker 的 GPG 密钥以验证软件包的真实性。执行以下命令:
代码语言:javascript
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.gpgGPG 密钥的添加确保了后续下载的软件包未被篡改。接着,设置 Docker 稳定版仓库:
代码语言:javascript
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
sudo apt update这里,$(lsb_release -cs) 会自动检测系统的版本代号(如 noble),确保仓库地址正确。更新包列表后,系统即可访问 Docker 官方仓库。
选择并安装特定版本的 Docker
Docker 提供多个版本,建议安装特定版本以避免潜在兼容性问题。首先,列出可用的 Docker CE 版本:
代码语言:javascript
apt-cache madison docker-ce | awk '{ print $3 }'输出可能如下:
代码语言:javascript
5:28.0.4-1~ubuntu.24.04~noble
5:28.0.3-1~ubuntu.24.04~noble选择最新版本,例如 5:28.0.4-1~ubuntu.24.04~noble,设置变量:
代码语言:javascript
VERSION_STRING=5:28.0.4-1~ubuntu.24.04~noble然后安装 Docker Engine 及其相关组件:
代码语言:javascript
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin这里,docker-ce 是核心引擎,docker-ce-cli 是命令行接口,containerd.io 是容器运行时,docker-buildx-plugin 增强了多平台构建功能,docker-compose-plugin 则用于管理多容器应用。这些组件并非全部必需,但官方文档建议一起安装以获得完整功能。
验证安装与后续配置
安装完成后,运行测试容器以验证 Docker 是否正常工作:
代码语言:javascript
sudo docker run hello-world该命令会下载 hello-world 镜像并运行,若成功,将显示确认信息,表明 Docker 已正确安装并启动。
测试nginx
代码语言:javascript
docker run --rm -d -p 8080:80 --name my-nginx nginx非 root 用户也能运行 Docker
默认情况下,运行 Docker 命令需要 root 权限。若希望非 root 用户也能运行 Docker,可将当前用户添加到 docker 组:
代码语言:javascript
sudo usermod -aG docker ${USER}添加后,需要注销并重新登录以使更改生效。此步骤可选,但对日常使用非常方便。
安装注意事项
安装过程中,可能遇到以下情况:
如果系统未更新,可能无法正确添加仓库,建议先执行
sudo apt update和sudo apt upgrade。Docker Desktop 也可用,但本文聚焦于 Docker Engine,适合服务器环境。
Ubuntu 24.04 的版本代号为 Noble Numbat,官方文档中提到的版本字符串(如 5:28.0.4-1~ubuntu.24.04~noble)确保与系统匹配。
此外,官方文档还提供了卸载步骤,若需移除 Docker,可参考:
代码语言:javascript
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo rm -rf /var/lib/docker /var/lib/containerd但本文重点在安装,卸载步骤可参考官方文档进一步了解。
表格:安装步骤总结
以下表格总结了主要安装步骤及其对应的命令:
使用脚本自动安装
在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu 系统上可以使用这套脚本安装,另外可以通过 --mirror 选项使用国内源进行安装:
curl -fsSL test.docker.com -o get-docker.sh
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
sudo sh get-docker.sh --mirror AzureChinaCloud执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)版本安装在系统中。
启动 Docker
$ sudo systemctl enable docker
$ sudo systemctl start docker建立 docker 用户组
默认情况下,docker 命令会使用 Unix socket (opens new window)与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。
建立 docker 组:
$ sudo groupadd docker将当前用户加入 docker 组:
$ sudo usermod -aG docker $USER
测试 Docker 是否安装正确
$ docker run --rm hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
若能正常输出以上信息,则说明安装成功。
镜像加速
如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker 国内镜像加速。