跳转至

1️⃣ 删除系统自带旧版本(如果有)

dnf remove -y docker docker-client docker-client-latest docker-common \ docker-latest docker-latest-logrotate docker-logrotate docker-engine


2️⃣ 安装必要依赖

dnf install -y yum-utils device-mapper-persistent-data lvm2


3️⃣ 添加 Docker 官方仓库

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Rocky 基于 RHEL9,可以使用 CentOS 的这个 repo,官方支持。


4️⃣ 安装 Docker Engine

dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin


5️⃣ 启动并设置开机自启

systemctl enable --now docker


6️⃣ 验证安装

docker version
docker info
docker run hello-world

7️⃣(可选)允许当前用户不用 sudo 运行 docker

usermod -aG docker $USER

然后退出重新登录生效。

下面是 Rocky9 通用的阿里云 Docker CE repo 配置方式。


1. 添加阿里云 Docker CE 仓库(适用于 Rocky9/RHEL9)

阿里云镜像是同步官方的 CentOS/RHEL仓库,可以直接用。

创建 repo 文件:

sudo tee /etc/yum.repos.d/docker-ce.repo << 'EOF'
[docker-ce-stable]
name=Docker CE Stable - $basearch - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/9/$basearch/stable
enabled=1
gpgcheck=0

[docker-ce-test]
name=Docker CE Test - $basearch - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/9/$basearch/test
enabled=0
gpgcheck=0

[docker-ce-nightly]
name=Docker CE Nightly - $basearch - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/9/$basearch/nightly
enabled=0
gpgcheck=0
EOF


2. 安装 Docker

dnf install -y docker-ce docker-ce-cli containerd.io \
    docker-buildx-plugin docker-compose-plugin


3. 启动 Docker 服务

systemctl enable --now docker


4. 测试

docker run hello-world


🎯 (可选)配置国内镜像加速(推荐)

/etc/docker/daemon.json 添加阿里云加速器:

mkdir -p /etc/docker

tee /etc/docker/daemon.json << 'EOF'
{
    "registry-mirrors": [
        "https://registry.aliyuncs.com",
        "https://docker.mirrors.sjtug.sjtu.edu.cn",
        "https://mirror.ccs.tencentyun.com"
    ]
}
EOF

重启 Docker:

systemctl restart docker
docker-compose version
docker compose --help

配置私有仓库

cat /etc/docker/daemon.json
{
    "exec-opts": ["native.cgroupdriver=systemd"],
    "insecure-registries": ["192.168.124.70:80"]
}
#默认情况下,Docker 只信任HTTPS的镜像仓库。
#如果你有一个自建的私有仓库(比如用 Harbor 或简单 registry),而且没有配置 HTTPS,Docker 会拒绝连接。
#把 IP 加入insecure-registries后,Docker 就会允许通过 HTTP 连接这个地址,不再报错。