mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-08-10 08:27:25 +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:
@@ -17,3 +17,17 @@ CLI 的实验特性通常包含仍在开发中的新功能。幸运的是,在
|
||||
"experimental": true
|
||||
}
|
||||
```
|
||||
|
||||
保存后重启 Docker daemon:
|
||||
|
||||
```bash
|
||||
$ sudo systemctl restart docker
|
||||
```
|
||||
|
||||
然后执行下面的命令验证服务端实验特性已经生效:
|
||||
|
||||
```bash
|
||||
$ docker version
|
||||
```
|
||||
|
||||
若输出中的 `Server` / `Engine` 部分出现 `Experimental: true`,说明 daemon 端实验特性已经启用。
|
||||
|
||||
+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 用户组
|
||||
|
||||
+36
-45
@@ -4,7 +4,7 @@ Debian 以其稳定性著称,是 Docker 的理想宿主系统。本节将指
|
||||
|
||||
### APT 源安装的必要性
|
||||
|
||||
与 Ubuntu 类似,Debian 用户在安装 Docker 时同样应该优先选择 APT 源安装。Debian 对系统稳定性的极致追求,使得通过官方仓库来管理 Docker 生命周期变得尤为重要。特别是在服务器环境,APT 源提供的版本控制和安全更新流程是不可或缺的。
|
||||
与 Ubuntu 类似,Debian 用户在安装 Docker 时同样应该优先选择 Docker 官方 APT 仓库。对于服务器环境,这种方式更利于版本控制、升级和长期维护。
|
||||
|
||||
> 警告:切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker。
|
||||
|
||||
@@ -16,93 +16,84 @@ Debian 以其稳定性著称,是 Docker 的理想宿主系统。本节将指
|
||||
|
||||
Docker 支持以下版本的 [Debian](https://www.debian.org/intro/about) 操作系统:
|
||||
|
||||
* Debian Trixie 13 (stable,2025 年 8 月发布,当前活跃版本)
|
||||
* Debian Bookworm 12 (oldstable,全面支持至 2026 年 6 月,LTS 至 2028 年 6 月)
|
||||
* Debian Bullseye 11 (LTS 长期支持,支持至 2026 年 8 月 31 日)
|
||||
* Debian Trixie 13 (stable)
|
||||
* Debian Bookworm 12 (oldstable,全面支持至 2026 年 6 月,LTS 至 2028 年 6 月)
|
||||
* Debian Bullseye 11 (oldoldstable,LTS 支持至 2026 年 8 月 31 日)
|
||||
|
||||
> **注意**:Debian Bullseye 11 将于 2026 年 8 月底结束长期支持。建议新部署使用 Bookworm 12 或 Trixie 13。
|
||||
|
||||
#### 卸载旧版本
|
||||
|
||||
旧版本的 Docker 称为 `docker` 或者 `docker-engine`,使用以下命令卸载旧版本:
|
||||
Docker 官方建议先卸载可能冲突的非官方软件包:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get remove docker \
|
||||
docker-engine \
|
||||
docker.io
|
||||
$ for pkg in docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc; do
|
||||
sudo apt remove $pkg
|
||||
done
|
||||
```
|
||||
|
||||
### 3.2.2 使用 APT 安装
|
||||
|
||||
由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
|
||||
先安装基础依赖,并准备密钥目录:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update
|
||||
$ sudo apt update
|
||||
|
||||
$ sudo apt-get install \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
gnupg \
|
||||
lsb-release
|
||||
$ sudo apt install ca-certificates curl
|
||||
$ sudo install -m 0755 -d /etc/apt/keyrings
|
||||
```
|
||||
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
|
||||
如果公司内网维护了受信任镜像站,可在后续仓库地址中替换域名;默认建议优先使用 Docker 官方仓库。
|
||||
|
||||
为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。
|
||||
|
||||
```bash
|
||||
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
||||
|
||||
# 官方源
|
||||
# $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
||||
$ sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
|
||||
$ sudo chmod a+r /etc/apt/keyrings/docker.asc
|
||||
```
|
||||
然后,我们需要向 `sources.list` 中添加 Docker 软件源:
|
||||
|
||||
> 在一些基于 Debian 的 Linux 发行版中 `$(lsb_release -cs)` 可能不会返回 Debian 的版本代号,例如 [Kali Linux](https://www.kali.org/docs/policy/kali-linux-relationship-with-debian/)、[BunsenLabs Linux](https://www.bunsenlabs.org/)。在这些发行版中我们需要将下面命令中的 `$(lsb_release -cs)` 替换为 https://mirrors.aliyun.com/docker-ce/linux/debian/dists/ 中支持的 Debian 版本代号,例如 `buster`。
|
||||
> 在一些基于 Debian 的 Linux 发行版中,`$(. /etc/os-release && echo "$VERSION_CODENAME")` 可能不会返回 Debian 官方仓库使用的代号,例如 [Kali Linux](https://www.kali.org/docs/policy/kali-linux-relationship-with-debian/) 等衍生发行版。此时请手动替换为对应的 Debian 代号,例如 `bookworm`。
|
||||
|
||||
```bash
|
||||
$ echo \
|
||||
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian \
|
||||
$(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/debian \
|
||||
# $(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/debian
|
||||
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
|
||||
Components: stable
|
||||
Architectures: $(dpkg --print-architecture)
|
||||
Signed-By: /etc/apt/keyrings/docker.asc
|
||||
EOF
|
||||
```
|
||||
> 以上命令会添加稳定版本的 Docker APT 源,如果需要测试版本的 Docker 请将 stable 改为 test。Debian11 可能不使用 `/etc/apt/keyrings/`,如 gpg 错误可以考虑更换为 `/etc/apt/trusted.gpg.d`,见 [issue 15727](https://github.com/docker/docs/issues/15727)。
|
||||
> 如果使用 Kali 等衍生发行版,请把 `Suites` 对应的版本代号替换为映射到的 Debian 代号,例如 `bookworm`。如果需要测试频道,可将 `Components: stable` 改为 `test`。
|
||||
|
||||
#### 安装 Docker
|
||||
|
||||
更新 apt 软件包缓存,并安装 `docker-ce`。
|
||||
更新 APT 缓存,并安装 Docker Engine 及常用 CLI 插件。
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update
|
||||
$ sudo apt update
|
||||
|
||||
$ sudo apt-get 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.2.3 使用脚本自动安装
|
||||
|
||||
在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Debian 系统上可以使用这套脚本安装,另外可以通过 `--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.2.4 启动 Docker
|
||||
|
||||
```bash
|
||||
$ sudo systemctl enable docker
|
||||
$ sudo systemctl start docker
|
||||
$ sudo systemctl enable --now docker
|
||||
```
|
||||
|
||||
### 3.2.5 建立 docker 用户组
|
||||
|
||||
+18
-25
@@ -14,10 +14,11 @@ Fedora 的快速发布周期(每 6 个月发布新版本)决定了它的用
|
||||
|
||||
#### 系统要求
|
||||
|
||||
Docker 支持以下版本的 [Fedora](https://getfedora.org/) 操作系统:
|
||||
根据 Docker 官方安装文档,当前受支持的 [Fedora](https://getfedora.org/) 版本包括:
|
||||
|
||||
* Fedora 42 (支持至 2026 年 5 月)
|
||||
* Fedora 43 (支持至 2026 年 12 月)
|
||||
* Fedora 44
|
||||
* Fedora 43
|
||||
* Fedora 42
|
||||
|
||||
#### 卸载旧版本
|
||||
|
||||
@@ -45,21 +46,14 @@ $ sudo dnf remove docker \
|
||||
```bash
|
||||
$ sudo dnf -y install dnf-plugins-core
|
||||
```
|
||||
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
|
||||
默认建议优先使用 Docker 官方仓库;如果企业内网维护了受信任镜像站,可自行替换仓库 URL。
|
||||
|
||||
执行下面的命令添加 `dnf` 软件源:
|
||||
|
||||
```bash
|
||||
$ sudo dnf config-manager \
|
||||
--add-repo \
|
||||
https://mirrors.aliyun.com/docker-ce/linux/fedora/docker-ce.repo
|
||||
|
||||
$ sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
|
||||
|
||||
# 官方源
|
||||
# $ sudo dnf config-manager \
|
||||
# --add-repo \
|
||||
# https://download.docker.com/linux/fedora/docker-ce.repo
|
||||
https://download.docker.com/linux/fedora/docker-ce.repo
|
||||
```
|
||||
如果需要测试版本的 Docker 请使用以下命令:
|
||||
|
||||
@@ -74,43 +68,42 @@ $ sudo dnf config-manager --set-disabled docker-ce-test
|
||||
|
||||
#### 安装 Docker
|
||||
|
||||
更新 `dnf` 软件源缓存,并安装 `docker-ce`。
|
||||
更新 `dnf` 软件源缓存,并安装 Docker Engine 及常用 CLI 插件。
|
||||
|
||||
```bash
|
||||
$ sudo dnf update
|
||||
$ sudo dnf install docker-ce docker-ce-cli containerd.io
|
||||
$ sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
```
|
||||
你也可以使用以下命令安装指定版本的 Docker
|
||||
|
||||
```bash
|
||||
$ dnf list docker-ce --showduplicates | sort -r
|
||||
|
||||
docker-ce.x86_64 18.06.1.ce-3.fc28 docker-ce-stable
|
||||
docker-ce.x86_64 3:29.4.0-1.fc42 docker-ce-stable
|
||||
|
||||
$ sudo dnf -y install docker-ce-18.06.1.ce
|
||||
$ sudo dnf -y install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING>
|
||||
```
|
||||
|
||||
### 3.3.3 使用脚本自动安装
|
||||
|
||||
在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Fedora 系统上可以使用这套脚本安装,另外可以通过 `--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.3.4 启动 Docker
|
||||
|
||||
```bash
|
||||
$ sudo systemctl enable docker
|
||||
$ sudo systemctl start docker
|
||||
$ sudo systemctl enable --now docker
|
||||
```
|
||||
|
||||
### 3.3.5 建立 docker 用户组
|
||||
|
||||
+20
-37
@@ -16,7 +16,7 @@ CentOS (及其替代品 Rocky Linux、AlmaLinux) 是企业级服务器常用的
|
||||
|
||||
> **严重警告**:CentOS 7 已于 2024 年 6 月 30 日结束所有支持,不再接收任何安全更新。CentOS 8 已于 2021 年 12 月 31 日停止维护。强烈建议新项目使用 **Rocky Linux** 或 **AlmaLinux** 替代,这两个项目由社区维护,提供长期支持承诺。
|
||||
|
||||
Docker 支持 64 位版本 CentOS Stream 9、Rocky Linux 8/9、AlmaLinux 8/9,并且要求内核版本不低于 3.10。
|
||||
Docker 官方当前安装文档覆盖的 CentOS 平台为 **CentOS Stream 9** 和 **CentOS Stream 10**。Rocky Linux、AlmaLinux 等 RHEL 兼容发行版通常可以沿用相近步骤,但建议先在测试环境验证仓库与依赖是否匹配。
|
||||
|
||||
对于 Rocky Linux、AlmaLinux 或 CentOS Stream,推荐使用 `dnf` 包管理器。
|
||||
|
||||
@@ -46,23 +46,16 @@ $ sudo yum remove docker \
|
||||
执行以下命令安装依赖包:
|
||||
|
||||
```bash
|
||||
$ sudo dnf install -y dnf-utils
|
||||
$ sudo dnf install -y dnf-plugins-core
|
||||
```
|
||||
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
|
||||
默认建议优先使用 Docker 官方仓库;如果企业内网维护了受信任镜像站,可自行替换仓库 URL。
|
||||
|
||||
执行下面的命令添加 `yum` 软件源:
|
||||
|
||||
```bash
|
||||
$ sudo dnf config-manager \
|
||||
--add-repo \
|
||||
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
|
||||
|
||||
$ sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
|
||||
|
||||
# 官方源
|
||||
# $ sudo dnf config-manager \
|
||||
# --add-repo \
|
||||
# https://download.docker.com/linux/centos/docker-ce.repo
|
||||
https://download.docker.com/linux/centos/docker-ce.repo
|
||||
```
|
||||
如果需要测试版本的 Docker 请执行以下命令:
|
||||
|
||||
@@ -72,53 +65,43 @@ $ sudo dnf config-manager --set-enabled docker-ce-test
|
||||
|
||||
#### 安装 Docker
|
||||
|
||||
更新 `dnf` 软件源缓存,并安装 `docker-ce`。
|
||||
更新 `dnf` 软件源缓存,并安装 Docker Engine 及常用 CLI 插件。
|
||||
|
||||
```bash
|
||||
$ sudo dnf install docker-ce docker-ce-cli containerd.io
|
||||
$ sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
```
|
||||
|
||||
### 3.4.3 CentOS8 额外设置
|
||||
### 3.4.3 防火墙注意事项
|
||||
|
||||
CentOS 8/Stream 默认使用 `nftables`。Docker 在新版本中已提供 `nftables` 实验支持,但在一些环境下仍可能遇到兼容性问题。若你遇到容器网络异常,可以先切换回 `iptables` 后端:
|
||||
Docker 官方提醒:如果主机使用 `ufw` 或 `firewalld` 管理防火墙,容器暴露出的端口可能绕过现有规则;同时 Docker 仅兼容 `iptables-nft` 和 `iptables-legacy`,不支持直接由 `nft` 创建的规则集。
|
||||
|
||||
更改 `/etc/firewalld/firewalld.conf`
|
||||
因此,生产环境中更稳妥的做法是:
|
||||
|
||||
```bash
|
||||
## FirewallBackend=nftables
|
||||
|
||||
FirewallBackend=iptables
|
||||
```
|
||||
或者执行如下命令:
|
||||
|
||||
```bash
|
||||
$ firewall-cmd --permanent --zone=trusted --add-interface=docker0
|
||||
|
||||
$ firewall-cmd --reload
|
||||
```
|
||||
- 明确使用 `iptables-nft` 或 `iptables-legacy` 维护规则;
|
||||
- 需要限制容器流量时,优先把自定义规则写入 `DOCKER-USER` 链;
|
||||
- 在变更防火墙策略前,先用测试容器验证端口暴露和东西向流量是否符合预期。
|
||||
|
||||
### 3.4.4 使用脚本自动安装
|
||||
|
||||
在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装,另外可以通过 `--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.4.5 启动 Docker
|
||||
|
||||
```bash
|
||||
$ sudo systemctl enable docker
|
||||
$ sudo systemctl start docker
|
||||
$ sudo systemctl enable --now docker
|
||||
```
|
||||
|
||||
### 3.4.6 建立 docker 用户组
|
||||
|
||||
@@ -28,63 +28,57 @@
|
||||
|
||||
Docker 对 ARM 架构有着良好的支持。
|
||||
|
||||
Docker 不仅支持 `x86_64` 架构的计算机,同时也支持 `ARM` 架构的计算机,本小节内容以树莓派单片电脑为例讲解 `ARM` 架构安装 Docker。
|
||||
Docker 可以运行在多种 CPU 架构上,但本小节**只聚焦 Raspberry Pi OS 32-bit (armhf)** 的官方安装流程;如果你使用的是 64 位 Raspberry Pi OS,请直接参考 Debian `arm64` 安装说明。
|
||||
|
||||
Docker 支持以下版本的 [Raspberry Pi OS](https://www.raspberrypi.org/software/operating-systems/) 操作系统:
|
||||
Docker 官方目前单独提供的是 **Raspberry Pi OS 32-bit (armhf)** 安装页,支持情况如下:
|
||||
|
||||
* Raspberry Pi OS Trixie
|
||||
* Raspberry Pi OS Bookworm
|
||||
* Raspberry Pi OS Bullseye
|
||||
|
||||
> **重要提醒**:Docker Engine v28 是官方最后一个支持 Raspberry Pi OS 32-bit (armhf) 的大版本。从 v29 开始,32 位 Raspberry Pi OS 不再提供新主版本软件包。若你使用的是 64 位 Raspberry Pi OS,请直接参考 Debian `arm64` 安装方式。
|
||||
|
||||
*注:*`Raspberry Pi OS` 由树莓派的开发与维护机构[树莓派基金会](https://www.raspberrypi.org/)官方支持,并推荐用作树莓派的首选系统,其基于 `Debian`。
|
||||
|
||||
### 3.5.2 使用 APT 安装
|
||||
|
||||
推荐使用 APT 包管理器进行安装,以确保版本的稳定性和安全性。
|
||||
|
||||
由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
|
||||
先安装基础依赖,并准备密钥目录:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update
|
||||
|
||||
$ sudo apt-get install \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
gnupg \
|
||||
lsb-release
|
||||
gnupg
|
||||
```
|
||||
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
|
||||
默认建议优先使用 Docker 官方仓库;如果企业内网维护了受信任镜像站,可自行替换仓库 URL。
|
||||
|
||||
为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。
|
||||
|
||||
```bash
|
||||
$ sudo install -m 0755 -d /etc/apt/keyrings
|
||||
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/raspbian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
|
||||
|
||||
# 官方源
|
||||
# $ sudo install -m 0755 -d /etc/apt/keyrings
|
||||
# $ curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
# $ sudo chmod a+r /etc/apt/keyrings/docker.gpg
|
||||
$ sudo curl -fsSL https://download.docker.com/linux/raspbian/gpg -o /etc/apt/keyrings/docker.asc
|
||||
$ sudo chmod a+r /etc/apt/keyrings/docker.asc
|
||||
```
|
||||
然后,我们需要向 `sources.list` 中添加 Docker 软件源:
|
||||
|
||||
```bash
|
||||
$ echo \
|
||||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/raspbian \
|
||||
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
|
||||
# 官方源
|
||||
# $ echo \
|
||||
# "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/raspbian \
|
||||
# $(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/raspbian
|
||||
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
|
||||
Components: stable
|
||||
Architectures: $(dpkg --print-architecture)
|
||||
Signed-By: /etc/apt/keyrings/docker.asc
|
||||
EOF
|
||||
```
|
||||
> 以上命令会添加稳定版本的 Docker APT 源,如果需要测试版本的 Docker 请将 stable 改为 test。
|
||||
|
||||
#### 报错解决办法
|
||||
|
||||
在 `Raspberry Pi OS Bullseye/Bookworm` 中,如果你使用 `add-apt-repository` 添加源,可能会出现如下报错 (推荐改用上面的 `tee` 方式来写入 `/etc/apt/sources.list.d/docker.list`,可避免此问题):
|
||||
在 `Raspberry Pi OS Bullseye/Bookworm` 中,如果你使用 `add-apt-repository` 添加源,可能会出现如下报错。官方当前更推荐的做法是**不要继续回退到旧式单行 `deb` 配置**,而是直接使用上面的 `docker.sources` 文件方式写入仓库:
|
||||
|
||||
```bash
|
||||
Traceback (most recent call last):
|
||||
@@ -98,50 +92,39 @@ Traceback (most recent call last):
|
||||
raise NoDistroTemplateException(
|
||||
aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for Raspbian/bullseye
|
||||
```
|
||||
通过以下命令手动添加镜像源到 `/etc/apt/sources.list` 文件中即可解决:
|
||||
|
||||
```bash
|
||||
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/raspbian $(lsb_release -cs) stable" | sudo tee -a /etc/apt/sources.list
|
||||
|
||||
|
||||
## 官方源
|
||||
|
||||
# $ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/raspbian $(lsb_release -cs) stable" | sudo tee -a /etc/apt/sources.list
|
||||
|
||||
```
|
||||
如果之前已经写入了错误的源配置,建议先删除旧条目,再重新执行本节前面的 `docker.asc + docker.sources` 两步。
|
||||
|
||||
#### 安装 Docker
|
||||
|
||||
更新 apt 软件包缓存,并安装 `docker-ce`。
|
||||
更新 apt 软件包缓存,并安装 Docker Engine 及常用 CLI 插件。
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update
|
||||
|
||||
$ sudo apt-get install docker-ce
|
||||
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
```
|
||||
|
||||
### 3.5.3 使用脚本自动安装
|
||||
|
||||
在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Raspberry Pi OS 系统上可以使用这套脚本安装,另外可以通过 `--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` 安装稳定版。如果你运行的是 64 位 Raspberry Pi OS,更推荐直接迁移到 Debian `arm64` 安装路径,而不是继续停留在 32 位 armhf 流程上。
|
||||
|
||||
### 3.5.4 启动 Docker
|
||||
|
||||
```bash
|
||||
$ sudo systemctl enable docker
|
||||
$ sudo systemctl start docker
|
||||
$ sudo systemctl enable --now docker
|
||||
```
|
||||
|
||||
### 3.5.5 建立 docker 用户组
|
||||
|
||||
+61
-128
@@ -10,235 +10,167 @@
|
||||
|
||||
在无法连接外网的安全环境中,离线安装是唯一的选择。本节介绍如何在 RHEL 系发行版中进行离线安装。
|
||||
|
||||
> 注意:以下命令以 CentOS 7 为例。对于 CentOS Stream 9、Rocky Linux 9 或 AlmaLinux 9,请将 `yum` 替换为 `dnf`,并将软件包后缀 `el7` 替换为 `el9`。
|
||||
> 注意:Docker 官方当前支持的 RHEL 兼容平台基线已是 **CentOS Stream 9/10**。下面的离线示例建议统一按 `el9` 软件包和 `dnf` 流程准备,Rocky Linux 9、AlmaLinux 9 也可先在测试环境按相同思路验证。
|
||||
|
||||
### 3.6.1.1 YUM 本地文件安装:推荐
|
||||
### 3.6.1.1 本地 RPM 文件安装:推荐
|
||||
|
||||
推荐这种方式,是因为在生产环境中一般会选定某个指定的文档软件版本使用。
|
||||
推荐这种方式,是因为在生产环境中一般会选定某个指定的 Docker 软件版本使用。
|
||||
|
||||
#### 查询可用的软件版本
|
||||
|
||||
```bash
|
||||
#下载清华的镜像源文件
|
||||
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
|
||||
|
||||
sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
|
||||
|
||||
yum update
|
||||
$ sudo dnf -y install dnf-plugins-core
|
||||
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
|
||||
$ sudo dnf list docker-ce --showduplicates | sort -r
|
||||
```
|
||||
```bash
|
||||
sudo yum list docker-ce --showduplicates|sort -r
|
||||
|
||||
Loading mirror speeds from cached hostfile
|
||||
Loaded plugins: fastestmirror
|
||||
docker-ce.x86_64 24.0.4-1.el7 docker-ce-stable
|
||||
docker-ce.x86_64 3:19.03.7-3.el7 docker-ce-stable
|
||||
docker-ce.x86_64 3:19.03.6-3.el7 docker-ce-stable
|
||||
docker-ce.x86_64 3:19.03.5-3.el7 docker-ce-stable
|
||||
docker-ce.x86_64 3:19.03.4-3.el7 docker-ce-stable
|
||||
docker-ce.x86_64 3:19.03.3-3.el7 docker-ce-stable
|
||||
docker-ce.x86_64 3:19.03.2-3.el7 docker-ce-stable
|
||||
docker-ce.x86_64 3:19.03.1-3.el7 docker-ce-stable
|
||||
....
|
||||
docker-ce.x86_64 3:29.4.0-1.el9 docker-ce-stable
|
||||
docker-ce.x86_64 3:29.3.1-1.el9 docker-ce-stable
|
||||
docker-ce.x86_64 3:29.3.0-1.el9 docker-ce-stable
|
||||
```
|
||||
|
||||
#### 下载到指定文件夹
|
||||
|
||||
```bash
|
||||
sudo yum install --downloadonly --downloaddir=/tmp/docker24_offline_install/ docker-ce-24.0.4-1.el7 docker-ce-cli-24.0.4-1.el7
|
||||
```
|
||||
```bash
|
||||
Dependencies Resolved
|
||||
|
||||
====================================================================================================================================================================================
|
||||
Package Arch Version Repository Size
|
||||
====================================================================================================================================================================================
|
||||
Installing:
|
||||
docker-ce x86_64 24.0.4-1.el7 docker 25 M
|
||||
Installing for dependencies:
|
||||
container-selinux noarch 24.0.4-1.el7 extras 39 k
|
||||
containerd.io x86_64 24.0.4-1.el7 docker 23 M
|
||||
docker-ce-cli x86_64 24.0.4-1.el7 docker 40 M
|
||||
|
||||
Transaction Summary
|
||||
====================================================================================================================================================================================
|
||||
Install 1 Package (+3 Dependent packages)
|
||||
|
||||
Total download size: 87 M
|
||||
Installed size: 363 M
|
||||
Background downloading packages, then exiting:
|
||||
(1/4): container-selinux-24.0.4-1.el7.noarch.rpm | 39 kB 00:00:00
|
||||
(2/4): containerd.io-24.0.4-1.el7.x86_64.rpm | 23 MB 00:00:00
|
||||
(3/4): docker-ce-24.0.4-1.el7.x86_64.rpm | 25 MB 00:00:00
|
||||
(4/4): docker-ce-cli-24.0.4-1.el7.x86_64.rpm | 40 MB 00:00:00
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
Total 118 MB/s | 87 MB 00:00:00
|
||||
exiting because "Download Only" specified
|
||||
sudo dnf install --downloadonly --downloaddir=/tmp/docker_offline_install/ \
|
||||
docker-ce-<VERSION_STRING> \
|
||||
docker-ce-cli-<VERSION_STRING> \
|
||||
containerd.io \
|
||||
docker-buildx-plugin \
|
||||
docker-compose-plugin
|
||||
```
|
||||
|
||||
#### 复制到目标服务器之后进入文件夹安装:C-N
|
||||
下载完成后,把 `/tmp/docker_offline_install/` 目录中的全部 RPM 文件复制到离线目标服务器。
|
||||
|
||||
* 离线安装时,必须使用 rpm 命令不检查依赖的方式安装
|
||||
#### 在目标服务器进入文件夹后安装
|
||||
|
||||
* 离线安装时,不要使用 `rpm --nodeps --force` 跳过依赖检查;应先把完整依赖包集复制到目标服务器,再让 `dnf` 从本地 RPM 安装。
|
||||
|
||||
```bash
|
||||
rpm -Uvh *.rpm --nodeps --force
|
||||
$ sudo dnf install ./*.rpm
|
||||
```
|
||||
|
||||
#### 锁定软件版本:C-N
|
||||
#### 锁定软件版本(可选)
|
||||
|
||||
**下载锁定版本软件**
|
||||
|
||||
可参考下文的网络源搭建
|
||||
|
||||
```bash
|
||||
sudo yum install yum-plugin-versionlock
|
||||
$ sudo dnf install 'dnf-command(versionlock)'
|
||||
```
|
||||
**锁定软件版本**
|
||||
|
||||
```bash
|
||||
sudo yum versionlock add docker
|
||||
$ sudo dnf versionlock add docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
```
|
||||
**查看锁定列表**
|
||||
|
||||
```bash
|
||||
sudo yum versionlock list
|
||||
```
|
||||
```bash
|
||||
Loaded plugins: fastestmirror, versionlock
|
||||
3:docker-ce-24.0.4-1.el7.*
|
||||
versionlock list done
|
||||
$ sudo dnf versionlock list
|
||||
```
|
||||
**锁定后无法再更新**
|
||||
|
||||
```bash
|
||||
sudo yum install docker-ce
|
||||
Loaded plugins: fastestmirror, versionlock
|
||||
Loading mirror speeds from cached hostfile
|
||||
Excluding 1 update due to versionlock (use "yum versionlock status" to show it)
|
||||
Package 3:docker-ce-24.0.4-1.el7.x86_64 already installed and latest version
|
||||
Nothing to do
|
||||
$ sudo dnf upgrade docker-ce
|
||||
```
|
||||
**解锁指定软件**
|
||||
|
||||
```bash
|
||||
sudo yum versionlock delete docker-ce
|
||||
```
|
||||
```bash
|
||||
Loaded plugins: fastestmirror, versionlock
|
||||
Deleting versionlock for: 3:docker-ce-24.0.4-1.el7.*
|
||||
versionlock deleted: 1
|
||||
$ sudo dnf versionlock delete docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
```
|
||||
**解锁所有软件**
|
||||
|
||||
```bash
|
||||
sudo yum versionlock delete all
|
||||
$ sudo dnf versionlock clear
|
||||
```
|
||||
|
||||
### 3.6.1.2 YUM 本地源服务器搭建安装 Docker
|
||||
#### 3.6.1.2 本地仓库服务器搭建安装 Docker
|
||||
|
||||
#### 挂载 ISO 镜像搭建本地 File 源
|
||||
##### 挂载 ISO 镜像搭建本地 File 源
|
||||
|
||||
```bash
|
||||
## 删除其他网络源
|
||||
|
||||
rm -f /etc/yum.repos.d/*
|
||||
$ sudo rm -f /etc/yum.repos.d/*
|
||||
|
||||
## 挂载光盘或者iso镜像
|
||||
|
||||
mount /dev/cdrom /mnt
|
||||
$ sudo mount /dev/cdrom /mnt
|
||||
```
|
||||
```bash
|
||||
## 添加本地源
|
||||
|
||||
cat >/etc/yum.repos.d/local_files.repo<< EOF
|
||||
[Local_Files]
|
||||
name=Local_Files
|
||||
$ sudo tee /etc/yum.repos.d/local-base.repo <<EOF
|
||||
[local_base]
|
||||
name=local_base
|
||||
baseurl=file:///mnt
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7
|
||||
EOF
|
||||
```
|
||||
```bash
|
||||
## 测试刚才的本地源,安装createrepo软件
|
||||
|
||||
yum clean all
|
||||
yum install createrepo -y
|
||||
$ sudo dnf clean all
|
||||
$ sudo dnf install -y createrepo_c httpd
|
||||
```
|
||||
|
||||
#### 根据本地文件搭建 BASE 网络源
|
||||
##### 根据本地文件搭建 BaseOS/AppStream 网络源
|
||||
|
||||
```bash
|
||||
## 安装apache 服务器
|
||||
|
||||
yum install httpd -y
|
||||
|
||||
## 挂载光盘
|
||||
|
||||
mount /dev/cdrom /mnt
|
||||
|
||||
## 新建centos目录
|
||||
|
||||
mkdir /var/www/html/base
|
||||
$ sudo mkdir -p /var/www/html/base
|
||||
|
||||
## 复制光盘内的文件到刚才新建的目录
|
||||
|
||||
cp -R /mnt/Packages/* /var/www/html/base/
|
||||
createrepo /var/www/html/base/
|
||||
systemctl enable httpd
|
||||
systemctl start httpd
|
||||
$ sudo cp -R /mnt/* /var/www/html/base/
|
||||
$ sudo createrepo_c /var/www/html/base/
|
||||
$ sudo systemctl enable --now httpd
|
||||
```
|
||||
|
||||
#### 下载 Docker-CE 镜像仓库
|
||||
##### 下载 Docker CE 仓库内容
|
||||
|
||||
在有网络的服务器上下载 Docker-ce 镜像
|
||||
在有网络的服务器上同步 Docker CE RPM 包:
|
||||
|
||||
```bash
|
||||
## 下载清华的镜像源文件
|
||||
|
||||
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
|
||||
sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
|
||||
```
|
||||
```bash
|
||||
## 新建 docker-ce目录
|
||||
|
||||
mkdir /tmp/docker-ce/
|
||||
|
||||
## 把镜像源同步到镜像文件中
|
||||
|
||||
reposync -r docker-ce-stable -p /tmp/docker-ce/
|
||||
$ sudo dnf -y install dnf-plugins-core
|
||||
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
|
||||
$ mkdir -p /tmp/docker-ce
|
||||
$ sudo dnf reposync --repo=docker-ce-stable --download-path=/tmp/docker-ce
|
||||
```
|
||||
|
||||
#### 创建仓库索引
|
||||
##### 创建仓库索引
|
||||
|
||||
把下载的 docker-ce 文件夹复制到离线的服务器
|
||||
|
||||
```bash
|
||||
## 把 docker-ce 文件夹复制到 /var/www/html/docker-ce
|
||||
|
||||
## 重建索引
|
||||
|
||||
createrepo /var/www/html/docker-ce/
|
||||
$ sudo createrepo_c /var/www/html/docker-ce/
|
||||
```
|
||||
|
||||
#### YUM 客户端设置:C...N
|
||||
##### DNF 客户端设置
|
||||
|
||||
```bash
|
||||
rm -f /etc/yum.repos.d/*
|
||||
cat >/etc/yum.repos.d/local_files.repo<< EOF
|
||||
$ sudo rm -f /etc/yum.repos.d/*
|
||||
$ sudo tee /etc/yum.repos.d/local-files.repo <<EOF
|
||||
[local_base]
|
||||
name=local_base
|
||||
|
||||
## 改成B服务器地址
|
||||
## 改成仓库服务器地址
|
||||
|
||||
baseurl=http://x.x.x.x/base
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
proxy=_none_
|
||||
[docker_ce]
|
||||
name=docker_ce
|
||||
[docker-ce-stable]
|
||||
name=docker-ce-stable
|
||||
|
||||
## 改成B服务器地址
|
||||
## 改成仓库服务器地址
|
||||
|
||||
baseurl=http://x.x.x.x/docker-ce
|
||||
enabled=1
|
||||
@@ -248,10 +180,11 @@ EOF
|
||||
|
||||
```
|
||||
|
||||
#### Docker 安装:C...N
|
||||
##### 安装 Docker
|
||||
|
||||
```bash
|
||||
sudo yum makecache fast
|
||||
sudo yum install docker-ce docker-ce-cli containerd.io
|
||||
sudo systemctl enable docker
|
||||
$ sudo dnf makecache
|
||||
$ sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
$ sudo systemctl enable --now docker
|
||||
$ sudo docker run hello-world
|
||||
```
|
||||
|
||||
+8
-16
@@ -10,8 +10,8 @@ macOS 上没有原生 Linux 内核,Docker 需要运行在一个轻量级虚拟
|
||||
- 内存使用:Docker Desktop 本身会消耗一定内存用于虚拟机管理
|
||||
|
||||
**许可考虑**:
|
||||
- 个人开发和小团队可免费使用
|
||||
- 商业企业需要关注许可费用
|
||||
- 小型企业(少于 250 名员工且年收入低于 1000 万美元)、个人使用、教育和非商业开源项目可免费使用
|
||||
- 超出上述范围的商业用途需要付费订阅
|
||||
|
||||
### 3.7.1 系统要求
|
||||
|
||||
@@ -20,23 +20,15 @@ macOS 上没有原生 Linux 内核,Docker 需要运行在一个轻量级虚拟
|
||||
### 3.7.2 安装
|
||||
|
||||
> [!WARNING]
|
||||
> **商业许可限制**:自 2021 年起,Docker Desktop 对微型企业(少于 250 名员工且年收入少于 1000 万美元)、个人使用、教育和非商业开源项目仍然免费。对于其他商业用途,需要付费订阅。企业用户请注意合规风险,或考虑使用开源替代方案。
|
||||
> **商业许可限制**:Docker Desktop 对小型企业(少于 250 名员工且年收入低于 1000 万美元)、个人使用、教育和非商业开源项目仍然免费。超出上述范围的商业用途需要付费订阅。企业用户请注意合规风险。
|
||||
|
||||
Docker Desktop 为 Mac 用户提供了无缝的 Docker 体验。你可以选择使用 Homebrew 或手动下载安装包进行安装。
|
||||
|
||||
#### 使用 Homebrew 安装
|
||||
|
||||
[Homebrew](https://brew.sh/) 的 [Cask](https://github.com/Homebrew/homebrew-cask) 已经支持 Docker Desktop for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装:
|
||||
|
||||
```bash
|
||||
$ brew install --cask docker
|
||||
```
|
||||
Docker Desktop 为 Mac 用户提供了标准的图形化安装体验。官方当前主要提供 DMG 交互安装和命令行/企业部署安装;这里先介绍最常见的 DMG 安装方式。
|
||||
|
||||
#### 手动下载安装
|
||||
|
||||
如果需要手动下载,请点击以下[链接](https://desktop.docker.com/mac/main/amd64/Docker.dmg)下载 Docker Desktop for Mac。
|
||||
如果需要手动下载,可直接使用 [Docker Desktop for Mac Intel 版](https://desktop.docker.com/mac/main/amd64/Docker.dmg) 安装包。
|
||||
|
||||
> 如果你的电脑搭载的是 Apple Silicon 芯片 (`arm64` 架构),请点击以下[链接](https://desktop.docker.com/mac/main/arm64/Docker.dmg)下载 Docker Desktop for Mac。
|
||||
> 如果你的电脑搭载的是 Apple Silicon 芯片(`arm64` 架构),请使用 [Docker Desktop for Mac Apple Silicon 版](https://desktop.docker.com/mac/main/arm64/Docker.dmg)。
|
||||
|
||||
如同 macOS 其它软件一样,安装也非常简单,双击下载的 `.dmg` 文件,然后将那只叫 [Moby](https://www.docker.com/blog/call-me-moby-dock/) 的鲸鱼图标拖拽到 `Application` 文件夹即可 (其间需要输入用户密码)。
|
||||
|
||||
@@ -67,11 +59,11 @@ $ docker info
|
||||
```bash
|
||||
$ docker run -d -p 80:80 --name webserver nginx
|
||||
```
|
||||
服务运行后,可以访问 [http://localhost](http://localhost),如果看到了 “Welcome to nginx!”,就说明 Docker Desktop for Mac 安装成功了。
|
||||
服务运行后,可以访问 [http://localhost](http://localhost)。如果看到了 `Welcome to nginx!`,就说明 Docker Desktop for Mac 安装成功了。
|
||||
|
||||

|
||||
|
||||
要停止 Nginx 服务器并删除执行下面的命令:
|
||||
要停止并删除 Nginx 容器,执行下面的命令:
|
||||
|
||||
```bash
|
||||
$ docker stop webserver
|
||||
|
||||
@@ -17,22 +17,26 @@
|
||||
- 性能略低于 WSL 2
|
||||
- 在某些企业网络环境下仍被使用
|
||||
|
||||
**实践建议**:如果你的系统支持 WSL 2,强烈推荐使用 WSL 2。在安装 Docker Desktop 时,如果 WSL 2 环境检测无问题,安装程序会自动使用 WSL 2。
|
||||
**实践建议**:WSL 2 和 Hyper-V 在功能上都能满足 Docker Desktop 的日常开发需求,选择哪种后端应以机器能力、企业策略和你的工作流为准;如果系统只满足其中一种后端的前置条件,安装器才会自动选择可用的那一种。
|
||||
|
||||
### 3.8.1 系统要求
|
||||
|
||||
[Docker Desktop for Windows](https://docs.docker.com/desktop/setup/install/windows-install/) 支持 Docker 官方文档列出的受支持 Windows 10/11 64 位版本。若使用 WSL 2 后端,需要启用 WSL 2,并满足官方要求的 `WSL 2.1.5` 或更高版本;若使用 Hyper-V 后端,则需要启用 Hyper-V 和 Containers 功能。Windows 10 64 位支持 Enterprise、Pro 和 Education 22H2 (build 19045),Windows 11 64 位支持 Enterprise、Pro 和 Education 23H2 (build 22631) 或更高版本。
|
||||
[Docker Desktop for Windows](https://docs.docker.com/desktop/setup/install/windows-install/) 支持 Docker 官方文档列出的受支持 Windows 10/11 64 位版本。若使用 WSL 2 后端,需要启用 WSL 2,并满足官方要求的 `WSL 2.1.5` 或更高版本;若使用 Hyper-V 后端,则需要启用 Hyper-V 和 Containers 功能。Windows 10 64 位支持 Enterprise、Pro 和 Education 22H2(build 19045),Windows 11 64 位支持 Enterprise、Pro 和 Education 23H2(build 22631)或更高版本,且官方建议主机至少具备 8 GB 内存。
|
||||
|
||||
### 3.8.2 安装
|
||||
|
||||
> [!WARNING]
|
||||
> **商业许可限制**:自 2021 年起,Docker Desktop 对微型企业(少于 250 名员工且年收入少于 1000 万美元)、个人使用、教育和非商业开源项目仍然免费。对于其他商业用途,需要付费订阅。企业用户请注意合规风险,或考虑使用开源替代方案。
|
||||
> **商业许可限制**:Docker Desktop 对小型企业(少于 250 名员工且年收入少于 1000 万美元)、个人使用、教育和非商业开源项目仍然免费。对于其他商业用途,以及政府机构使用,需要付费订阅。企业用户请注意合规风险。
|
||||
|
||||
**手动下载安装**
|
||||
|
||||
点击以下[链接](https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe)下载 Docker Desktop for Windows。
|
||||
官方当前提供三个主要入口:
|
||||
|
||||
下载好之后双击 `Docker Desktop Installer.exe` 开始安装。
|
||||
- [Docker Desktop for Windows x86_64 安装包](https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe)
|
||||
- [Docker Desktop for Windows Microsoft Store 版本](https://apps.microsoft.com/detail/XP8CBJ40XLBWKX)
|
||||
- [Docker Desktop for Windows Arm 早期访问版](https://desktop.docker.com/win/main/arm64/Docker%20Desktop%20Installer.exe)
|
||||
|
||||
下载好对应安装包后,双击 `Docker Desktop Installer.exe` 开始安装。
|
||||
|
||||
**使用**[**winget**](https://learn.microsoft.com/windows/package-manager/winget/)**安装**
|
||||
|
||||
|
||||
@@ -11,10 +11,10 @@
|
||||
> ⚠️ **重要提示**:国内大多数 Docker Hub 加速服务已于 2024 年中旬关闭(包括阿里云、腾讯云、网易云、百度云等)。如下推荐的镜像源可用性因人而异,建议先测试可用性再配置。
|
||||
|
||||
1. **云服务器用户**:优先使用所在云平台提供的内部加速器(见本页末尾"云服务商"部分)
|
||||
2. **本地开发用户**:从以下社区维护的镜像中选择,推荐 `docker.1ms.run`、`dockerproxy.net` 或 DaoCloud 的 `docker.m.daocloud.io`
|
||||
2. **本地开发用户**:优先使用自建 pull-through cache;如果必须依赖社区镜像,请先用上面的测试仓库确认实时可用性
|
||||
3. **代理方案**:如有条件,可配置 HTTP 代理直接访问 Docker Hub
|
||||
|
||||
本节以 [毫秒镜像](https://docker.1ms.run) 镜像服务 `https://docker.1ms.run` 为例进行介绍。由于镜像加速服务可用性经常变动,建议查阅 [docker-practice/docker-registry-cn-mirror-test](https://github.com/docker-practice/docker-registry-cn-mirror-test) 获取最新实时状态。
|
||||
更稳妥的长期方案是使用**自己控制的 pull-through cache / registry mirror**,或者优先使用云厂商提供的内网镜像。下文统一用 `https://<your-registry-mirror>` 作为占位符;如果你选择第三方公共站,请先确认可用性、服务条款和缓存策略。
|
||||
|
||||
### 3.9.2 Ubuntu 22.04+、Debian 12+、Rocky/Alma/CentOS Stream 9+
|
||||
|
||||
@@ -32,7 +32,7 @@ $ systemctl cat docker | grep '\-\-registry\-mirror'
|
||||
```json
|
||||
{
|
||||
"registry-mirrors": [
|
||||
"https://docker.1ms.run"
|
||||
"https://<your-registry-mirror>"
|
||||
]
|
||||
}
|
||||
```
|
||||
@@ -47,12 +47,12 @@ $ sudo systemctl restart docker
|
||||
|
||||
### 3.9.3 Windows 10/11
|
||||
|
||||
对于使用 `Windows 10/11` 的用户,在任务栏托盘 Docker 图标内右键菜单选择 `Change settings`,打开配置窗口后在左侧导航菜单选择 `Docker Engine`,在右侧像下边一样编辑 json 文件,之后点击 `Apply & Restart` 保存后 Docker 就会重启并应用配置的镜像地址了。
|
||||
对于使用 `Windows 10/11` 的用户,在任务栏托盘 Docker 图标内打开 `Settings`,在左侧导航菜单选择 `Docker Engine`,在右侧像下边一样编辑 JSON 文件,之后点击 `Apply & Restart` 保存后 Docker 就会重启并应用配置的镜像地址了。
|
||||
|
||||
```json
|
||||
{
|
||||
"registry-mirrors": [
|
||||
"https://docker.1ms.run"
|
||||
"https://<your-registry-mirror>"
|
||||
]
|
||||
}
|
||||
```
|
||||
@@ -64,7 +64,7 @@ $ sudo systemctl restart docker
|
||||
```json
|
||||
{
|
||||
"registry-mirrors": [
|
||||
"https://docker.1ms.run"
|
||||
"https://<your-registry-mirror>"
|
||||
]
|
||||
}
|
||||
```
|
||||
@@ -75,12 +75,12 @@ $ sudo systemctl restart docker
|
||||
|
||||
```bash
|
||||
Registry Mirrors:
|
||||
https://docker.1ms.run/
|
||||
https://<your-registry-mirror>/
|
||||
```
|
||||
|
||||
### 3.9.6 Kubernetes 官方镜像地址迁移
|
||||
|
||||
可以登录[阿里云容器镜像服务](https://www.aliyun.com/product/acr?source=5176.11533457&userCode=8lx5zmtu&type=copy)**镜像中心**->**镜像搜索** 查找。
|
||||
可以登录 [阿里云容器镜像服务](https://www.aliyun.com/product/acr?source=5176.11533457&userCode=8lx5zmtu&type=copy),在 **镜像中心** -> **镜像搜索** 中查找。
|
||||
|
||||
Kubernetes 社区已将官方镜像地址从 `k8s.gcr.io` 迁移到 `registry.k8s.io`。建议优先使用新地址。
|
||||
|
||||
@@ -102,7 +102,7 @@ $ docker pull registry.k8s.io/xxx
|
||||
* https://hub-mirror.c.163.com (网易云镜像已于 2024 年关闭)
|
||||
* https://mirror.baidubce.com (百度云镜像已停止)
|
||||
|
||||
建议 **watch (页面右上角)** [镜像测试仓库](https://github.com/docker-practice/docker-registry-cn-mirror-test) 这个 GitHub 仓库,我们会实时更新各镜像源的可用状态。
|
||||
建议 **watch(页面右上角)** [镜像测试仓库](https://github.com/docker-practice/docker-registry-cn-mirror-test) 这个 GitHub 仓库,我们会持续更新各镜像源的可用状态。
|
||||
|
||||
### 3.9.8 云服务商
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# 第三章 安装 Docker
|
||||
|
||||
Docker 分为 `stable` `test` 和 `nightly` 三个更新频道。
|
||||
Docker Engine 主要提供 `stable` 和 `test` 两个更新频道;`test.docker.com` 对应测试频道,适合预发布验证,不建议直接用于生产环境。
|
||||
|
||||
官方网站上有各种环境下的[安装指南](https://docs.docker.com/get-docker/),这里主要介绍 Docker 在 `Linux`、`Windows 10` 和 `macOS` 上的安装。
|
||||
官方网站上有各种环境下的[安装指南](https://docs.docker.com/get-docker/),这里主要介绍 Docker 在 `Linux`、`Windows 10/11` 和 `macOS` 上的安装。
|
||||
|
||||
## 安装方式选择指南
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@ Docker 支持在多种平台上安装和使用,选择合适的安装方式是
|
||||
| 平台 | 推荐方式 | 说明 |
|
||||
|------|---------|------|
|
||||
| **Ubuntu/Debian** | 官方 APT 仓库 | 最完善的支持,推荐首选 |
|
||||
| **CentOS/Fedora** | 官方 YUM/DNF 仓库 | 注意关闭 SELinux 或配置策略 |
|
||||
| **macOS** | Docker Desktop | 图形化安装,包含 Compose 和 Kubernetes |
|
||||
| **Windows 10/11** | Docker Desktop (WSL 2) | 需启用 WSL 2 后端 |
|
||||
| **Raspberry Pi** | 官方安装脚本 | 支持 ARM 架构 |
|
||||
| **CentOS/Fedora** | 官方 DNF/YUM 仓库 | 注意验证防火墙与 `iptables` 兼容性 |
|
||||
| **macOS** | Docker Desktop | 图形化安装,默认集成 Compose |
|
||||
| **Windows 10/11** | Docker Desktop(WSL 2 或 Hyper-V) | 按机器能力与企业策略选择后端 |
|
||||
| **Raspberry Pi** | 官方 APT 仓库或 Debian `arm64` 方案 | 32 位系统已停止接收 v29+ 新主版本 |
|
||||
| **离线环境** | 二进制包安装 | 适用于无法联网的服务器 |
|
||||
|
||||
### 安装后验证
|
||||
|
||||
Reference in New Issue
Block a user