节点安装 Docker

给集群节点(ubuntu/centos/redhat)装 docker、docker-compose、kubectl 客户端,或配置 docker 镜像加速/根目录时读这篇

02-部署安装 / 节点准备
安装dockerinstall dockerdocker-cedocker-composeubuntu dockercentos dockerredhat docker离线安装dockerdaemon.jsonregistry-mirrors镜像加速insecure-registriesdata-root切换docker根目录kubectl安装阿里云源

节点安装 Docker

本文覆盖 ubuntu / centos / redhat 三类系统安装 docker、docker-compose、kubectl 客户端,以及 docker 的镜像加速、根目录配置。

1. ubuntu 安装 docker

1.1 卸载旧版本 docker

sudo systemctl stop docker
apt-get --purge remove -y *docker*
apt-get --purge remove -y docker*
sudo apt-get autoremove -y
dpkg -l | grep docker
sudo rm -rf /var/lib/docker
sudo rm -rf /data/docker
sudo rm -rf /var/lib/containerd

1.2 在线安装 docker

### 设置 docker 存储库
sudo apt-get update -y
sudo apt-get install -y ca-certificates curl gnupg lsb-release vim git wget net-tools

### 添加官方秘钥
sudo mkdir -p /etc/apt/keyrings
rm -rf /etc/apt/keyrings/docker.gpg
rm -rf /etc/apt/sources.list.d/docker.list

### 使用 docker 官方源
#curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#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

### 国内使用阿里源
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
arch=amd64    # 或者 arm64
sudo add-apt-repository -y "deb [arch=${arch}] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

### 安装 docker
sudo apt-get update

### 查看存储库中的可用版本(需要 19.03 以上的 docker)
# 搜索可用版本
apt-cache madison docker-ce

# 安装最新版 docker,但不建议直接使用新版本
# sudo apt install -y docker-ce

# 可以提前软连 docker 根目录
# ln -s /data/docker /var/lib/

# 建议不要直接装最新版,而是安装指定版本,示例如下
apt install -y docker-ce=5:27.0.3-1~ubuntu.20.04~focal      # ubuntu 2020
apt install -y docker-ce=5:27.0.3-1~ubuntu.22.04~jammy      # ubuntu 2022
apt install -y docker-ce=5:27.0.3-1~ubuntu.24.04~noble      # ubuntu 2024

# 安装 docker-compose
apt install -y docker-compose

1.3 离线安装 docker

wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.6.tgz
# arm64 下载 wget https://download.docker.com/linux/static/stable/aarch64/docker-24.0.6.tgz
tar -zxvf docker-24.0.6.tgz
sudo cp docker/* /usr/bin/
vim /etc/systemd/system/docker.service


[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target



chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl enable docker.service
systemctl start docker

离线安装 docker-compose:

wget https://githubfast.com/docker/compose/releases/download/v5.0.2/docker-compose-linux-x86_64
#arm64 下载:wget https://githubfast.com/docker/compose/releases/download/v5.0.2/docker-compose-linux-aarch64
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

docker-compose -v

⚠️ 待核实:docker-compose 的下载版本写的是 v5.0.2,但 docker compose 官方发布版本号通常是 v2.x(不存在 v5.0.2 的 release),原文此处可能有误。无对应代码可核实,请按实际可下载的版本(如 v2.x 最新版)替换。

2. ubuntu 安装 k8s 客户端(非必须)

apt-get update && apt-get install -y apt-transport-https
# 添加并信任 APT 证书
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
# 添加源地址
add-apt-repository "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main"

apt-get update -y

# 搜索可用版本
apt-cache madison kubectl

# 安装最新版,最好指定版本
# apt install -y kubectl
# 安装指定版本
apt install -y kubectl=1.24.10-00

# 添加 completion,最好放入 .bashrc 中
apt install -y bash-completion
source <(kubectl completion bash)

3. centos 安装 docker

3.1 安装 docker

# 先卸载原有 docker
service docker stop
rpm -qa | grep docker | xargs yum remove -y
rpm -qa | grep docker
rm -rf /usr/lib/systemd/system/docker.service

# 安装镜像源
yum install -y container-selinux yum-utils

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum update -y
# 查看可用版本
yum list docker-ce --showduplicates
# 安装指定版本
yum install -y docker-ce
#yum install -y docker-ce-26.1.3-1.el8
#yum install -y docker-ce-26.1.3-1.el9

systemctl start docker

3.2 yum 安装 k8s 的源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
yum install -y kubectl-1.24.0
source <(kubectl completion bash)

4. redhat 安装 docker

4.1 安装 docker

dnf update -y
dnf install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install -y docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker

5. 配置 docker

mkdir -p /etc/docker/
# 添加如下配置,先把下面这个文件中的中文注释去掉,不然可能会有问题
cat > /etc/docker/daemon.json <<EOF
{
    # 镜像加速器,拉取 docker 官方镜像时需要
    "registry-mirrors": ["https://hub.rat.dev/","https://docker.xuanyuan.me", "https://docker.m.daocloud.io","https://dockerproxy.com"],
    # dns 可不配置
    "dns": ["114.114.114.114","8.8.8.8"],
    # k8s 集群可以同时拉取多个镜像
    "max-concurrent-downloads": 30,
    # 默认在系统根目录下,如果磁盘有限可以改为其他有空间的目录,占用存储会越来越多
    "data-root": "/data/docker",
    # 内部如果有 http 的镜像仓库,可以添加
    "insecure-registries":["docker.oa.com:8080"]
}
EOF

systemctl stop docker
systemctl daemon-reload
systemctl start docker

6. 切换 docker 根目录

mkdir -p /data/docker/
# 将源 docker 目录下文件,复制到新目录下
cp -R /var/lib/docker/* /data/docker/

然后按照上面的配置 daemon.json,配置根目录为 /data/docker/

之后就可以把之前的目录删掉:

rm -rf /var/lib/docker

注意

如果镜像源没有生效,那在拉取 dockerhub 镜像的前面加上 registry.cn-hangzhou.aliyuncs.com/

例如,拉取 docker pull rancher/rancher:v2.8.5 替换为:

docker pull registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.8.5
最后更新 2026-06-30完整文档以官方仓库为准:GitHub Wiki