一、静态文件获取

架构 Docker 二进制包
获取地址
buildx compose
x86_64 官方 GitHub GitHub
AArch64 官方 GitHub GitHub
LoongArch64 非官方 loong64 GitHub loong64 GitHub

二、部署使用

  1. 根据上步地址获取二进制包,之后将二进制包保存在同一个目录下;
  2. 在二进制包所在目录按以下内容生成 install.sh
  3. 执行./install.sh docker-xx.xx.x.tgz (注意需要对 install.sh 赋予执行权限;xx.x.x 应替换为具体版本号;普通用户应添加 sudo 提权 ) ;
  4. 自由使用docker环境。
#!/bin/sh

set -e # 遇错退出

if [ "$#" -lt 1 ]; then
    echo "用法: $0 docker-xxx.tgz"
    exit 1
fi

TAR_FILE="$1"

echo '解压 tar 包...'
tar -xvf "$TAR_FILE"

# 自动查找包含 dockerd 的目录(通常是 docker/)
if [ -d "docker" ]; then
    DOCKER_DIR="docker"
elif [ -d "$(tar -tf "$TAR_FILE" | head -1 | cut -d'/' -f1)" ]; then
    # 尝试从 tar 包名推断目录
    DOCKER_DIR="$(tar -tf "$TAR_FILE" | head -1 | cut -d'/' -f1)"
else
    echo "错误:未找到 docker 目录,请确保 tar 包结构正确。"
    exit 1
fi

echo "将 $DOCKER_DIR 目录下所有文件复制到 /usr/bin..."
cp "$DOCKER_DIR"/* /usr/bin/

echo '生成 docker.service...'
cat >/etc/systemd/system/docker.service <<'EOF'
[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 --default-ulimit nofile=65535:65535 --selinux-enabled=false
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target
EOF
chmod +x /etc/systemd/system/docker.service

echo '重新加载 systemd 配置...'
systemctl daemon-reload

echo '启动 Docker...'
systemctl start docker

echo '设置开机自启...'
systemctl enable docker.service

echo '验证 Docker 版本...'
docker -v

# === 配置 docker 用户组 ===
echo '配置 docker 用户组...'

# 创建 docker 组(如果不存在)
if ! getent group docker >/dev/null 2>&1; then
    groupadd docker
fi

# 将当前用户(调用者)加入 docker 组
# 注意:$SUDO_USER 在 sudo 下有效,否则用 $USER
CURRENT_USER="${SUDO_USER:-$USER}"
if id "$CURRENT_USER" >/dev/null 2>&1; then
    usermod -aG docker "$CURRENT_USER"
    echo "已将用户 $CURRENT_USER 加入 docker 组。"
else
    echo "警告:用户 $CURRENT_USER 不存在,跳过用户组添加。"
fi

# === 安装 CLI 插件(可选,带存在性检查)===
echo '安装 Docker CLI 插件(如果存在)...'

mkdir -p ~/.docker/cli-plugins/

# 处理 buildx
set -- buildx-*
if [ -f "$1" ]; then
    cp "$1" ~/.docker/cli-plugins/docker-buildx
    chmod +x ~/.docker/cli-plugins/docker-buildx
fi

# 处理 docker-compose
set -- docker-compose-*
if [ -f "$1" ]; then
    cp "$1" ~/.docker/cli-plugins/docker-compose
    chmod +x ~/.docker/cli-plugins/docker-compose
fi

echo ""
echo "✅ Docker 安装完成!"
echo "💡 请重新登录终端(或运行 'newgrp docker')以应用用户组变更。"

三、镜像仓库

x86_64/AArch64 仓库 :略

LoongArch64仓库loong64 GitHub龙芯中科(内核版本 < 5.10)龙芯中科(内核版本 >=5.10)