mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-08-10 16:37:34 +00:00
Refresh install guidance
# Conflicts: # 03_install/3.1_ubuntu.md # 03_install/3.2_debian.md # 03_install/3.3_fedora.md # 03_install/3.9_mirror.md
This commit is contained in:
+39
-52
@@ -4,11 +4,11 @@ Ubuntu 是 Docker 最常用的运行环境之一。本节将介绍如何在 Ubun
|
||||
|
||||
### 为什么推荐 APT 源安装而不是脚本?
|
||||
|
||||
虽然 Docker 官方提供了便捷的安装脚本(`get.docker.com`),但笔者在生产环境中**强烈推荐 APT 源安装**,原因如下:
|
||||
虽然 Docker 官方提供了便捷的安装脚本(`get.docker.com`),但笔者在生产环境中**强烈推荐通过 Docker 官方 APT 仓库安装**,原因如下:
|
||||
|
||||
- **版本管理**:通过 APT 源安装的 Docker,后续可以像管理其他系统软件包一样进行更新和版本管理
|
||||
- **安全补丁**:Ubuntu 官方仓库会及时推送 Docker 的安全更新,这在生产环境中至关重要
|
||||
- **一致性**:同一 Ubuntu 版本上的团队成员安装的 Docker 版本完全一致,避免了“在我的机器上可以运行”的问题
|
||||
- **版本管理**:通过 APT 仓库安装后,可以像管理其他系统软件包一样升级、回滚和锁定版本
|
||||
- **安全更新**:Docker 官方仓库会持续发布新版本和安全修复,适合长期维护
|
||||
- **一致性**:团队更容易锁定同一版本,避免“在我的机器上可以运行”的问题
|
||||
- **卸载干净**:APT 包管理系统会负责清理所有相关文件,脚本安装的清理往往不够彻底
|
||||
|
||||
如果你只是想快速尝试 Docker,脚本安装没有问题;但一旦涉及持久运维,APT 源是更成熟的选择。
|
||||
@@ -21,28 +21,24 @@ Ubuntu 是 Docker 最常用的运行环境之一。本节将介绍如何在 Ubun
|
||||
|
||||
#### 系统要求
|
||||
|
||||
Docker 支持诸多版本的 [Ubuntu](https://ubuntu.com/server) 操作系统。但是较旧的版本上将不会有 Docker 新版本的持续更新,以几个 Ubuntu LTS (Long Term Support,长期支持) 版本为例:
|
||||
根据 Docker 官方安装文档,当前受支持的 [Ubuntu](https://ubuntu.com/server) 64 位版本包括:
|
||||
|
||||
|
||||
* Ubuntu Noble 24.04 (LTS),Docker v29.x
|
||||
* Ubuntu Jammy 22.04 (LTS), Docker v29.x
|
||||
* Ubuntu Resolute 26.04 (LTS)
|
||||
* Ubuntu Questing 25.10
|
||||
* Ubuntu Noble 24.04 (LTS)
|
||||
* Ubuntu Jammy 22.04 (LTS)
|
||||
|
||||
> **警告**:Ubuntu 20.04 LTS 已于 2025 年 5 月 31 日结束标准支持。对于生产系统,建议升级至 Ubuntu 22.04 LTS 或 Ubuntu 24.04 LTS,以获得长期维护支持。若必须继续使用 20.04,可通过 Ubuntu Pro 订阅获得扩展安全维护(ESM)。
|
||||
> **警告**:Ubuntu 20.04 LTS 已不在 Docker 当前支持列表中,不建议用于新部署。对于仍在运行 20.04 的生产系统,应尽快升级到 22.04 LTS 或 24.04 LTS;若短期内无法迁移,可通过 Ubuntu Pro 获取操作系统层面的扩展安全维护(ESM),但这并不改变 Docker 官方支持矩阵。
|
||||
|
||||
在 Ubuntu LTS 版本上,目前 Docker 支持 amd64、arm64、armhf、ppc64el、s390x 等 5 个平台;而非 LTS 版本支持的平台通常较少。同时,LTS 版本会获得 5 年的升级维护支持,这样的系统会获得更长期的安全保障,因此在生产环境中推荐使用 LTS 版本。
|
||||
|
||||
#### 卸载旧版本
|
||||
|
||||
旧版本的 Docker 称为 `docker` 或者 `docker-engine`,使用以下命令卸载旧版本:
|
||||
Docker 官方建议先卸载可能冲突的非官方软件包:
|
||||
|
||||
```bash
|
||||
$ for pkg in docker \
|
||||
docker-engine \
|
||||
docker.io \
|
||||
docker-doc \
|
||||
podman-docker \
|
||||
containerd \
|
||||
runc;
|
||||
$ for pkg in docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc;
|
||||
do
|
||||
sudo apt remove $pkg;
|
||||
done
|
||||
@@ -50,73 +46,64 @@ done
|
||||
|
||||
### 3.1.2 使用 APT 安装
|
||||
|
||||
由于 `apt` 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
|
||||
先安装基础依赖,并准备 Docker 官方密钥目录:
|
||||
|
||||
```bash
|
||||
$ sudo apt update
|
||||
|
||||
$ sudo apt install \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
gnupg \
|
||||
lsb-release
|
||||
$ sudo apt install ca-certificates curl
|
||||
$ sudo install -m 0755 -d /etc/apt/keyrings
|
||||
```
|
||||
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
|
||||
如果企业内网已经维护了受信任的软件包镜像,可在后续步骤中替换 `URIs` 的域名;默认建议优先以 Docker 官方仓库为准。
|
||||
|
||||
为了确认所下载软件包的合法性,需要添加软件源的 `GPG` 密钥。
|
||||
为了确认所下载软件包的合法性,需要添加仓库签名密钥:
|
||||
|
||||
```bash
|
||||
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
||||
|
||||
# 官方源
|
||||
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
||||
$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
||||
$ sudo chmod a+r /etc/apt/keyrings/docker.asc
|
||||
```
|
||||
然后,我们需要向 `sources.list` 中添加 Docker 软件源
|
||||
然后向 `apt` 添加 Docker 仓库:
|
||||
|
||||
```bash
|
||||
$ echo \
|
||||
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
|
||||
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
|
||||
# 官方源
|
||||
# $ echo \
|
||||
# "deb [arch=amd64 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
|
||||
$ sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
|
||||
Types: deb
|
||||
URIs: https://download.docker.com/linux/ubuntu
|
||||
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
|
||||
Components: stable
|
||||
Architectures: $(dpkg --print-architecture)
|
||||
Signed-By: /etc/apt/keyrings/docker.asc
|
||||
EOF
|
||||
```
|
||||
> 以上命令会添加稳定版本的 Docker APT 镜像源,如果需要测试版本的 Docker 请将 stable 改为 test。
|
||||
> 如果需要测试频道,可将 `Components: stable` 改为 `test`,或改用 `test.docker.com` 脚本在测试环境验证。
|
||||
|
||||
#### 安装 Docker
|
||||
|
||||
更新 apt 软件包缓存,并安装 `docker-ce`:
|
||||
更新 APT 缓存,并安装 Docker Engine 及常用 CLI 插件:
|
||||
|
||||
```bash
|
||||
$ sudo apt update
|
||||
|
||||
$ sudo apt install docker-ce docker-ce-cli containerd.io
|
||||
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
```
|
||||
|
||||
### 3.1.3 使用脚本自动安装
|
||||
|
||||
在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装:
|
||||
在测试或开发环境中,Docker 官方提供了便捷安装脚本,但官方明确不建议把它作为生产环境的标准安装方式。
|
||||
|
||||
> 若你想安装测试版的 Docker,请从 test.docker.com 获取脚本
|
||||
在真正执行前,建议先用 `--dry-run` 预览脚本动作:
|
||||
|
||||
```bash
|
||||
# $ 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 --dry-run
|
||||
|
||||
# $ sudo sh get-docker.sh --mirror AzureChinaCloud
|
||||
# 若需要测试频道:
|
||||
# curl -fsSL https://test.docker.com -o test-docker.sh
|
||||
# sudo sh ./test-docker.sh
|
||||
```
|
||||
执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定 (stable) 版本安装在系统中。
|
||||
确认无误后,再执行 `sudo sh ./get-docker.sh` 安装稳定版。
|
||||
|
||||
### 3.1.4 启动 Docker
|
||||
|
||||
```bash
|
||||
$ sudo systemctl enable docker
|
||||
$ sudo systemctl start docker
|
||||
$ sudo systemctl enable --now docker
|
||||
```
|
||||
|
||||
### 3.1.5 建立 docker 用户组
|
||||
|
||||
Reference in New Issue
Block a user