通过静态文件部署Docker环境
一、静态文件获取
架构 | Docker 二进制包 获取地址 |
buildx | compose |
---|---|---|---|
x86_64 | 官方 | GitHub | GitHub |
AArch64 | 官方 | GitHub | GitHub |
LoongArch64 | 非官方 | loong64 GitHub | loong64 GitHub |
二、部署使用
- 根据上步地址获取二进制包,之后将二进制包保存在同一个目录下;
- 在二进制包所在目录按以下内容生成
install.sh
; - 执行
./install.sh docker-xx.xx.x.tgz
(注意需要对install.sh
赋予执行权限;xx.x.x 应替换为具体版本号;普通用户应添加sudo
提权 ) ; - 自由使用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)
- 作者:xmlwch
- 原文链接:https://blog.xmlwch.cn/2025/09/11/chlinux/docker-ce-binaries.html
- 版权声明:本作品采用 知识共享 署名-相同方式共享 4.0 国际(CC BY-SA 4.0)许可协议 进行许可,转载无需与我联系,但请注明出处。