diff --git a/README.md b/README.md index e848788..149fdc9 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,20 @@ # install_docker_offline +# 操作手册 + +### 例如: +1. docker-20.10.10.tgz 改成 docker.tgz +2. docker-compose-1.27.4 改成 docker-compose +3. 20.10.10 + 1.27.4 属于稳定版 + +~~~shell + +mv docker-20.10.10.tgz docker.tgz +mv docker-compose-1.27.4 docker-compose +./install_docker_offline.sh + +~~~ + +### 注:会遇到 containerd-shim-runc-v2 问题,最好用ubuntu用命令补充安装 +1. apt update +2. apt install containerd \ No newline at end of file diff --git a/docker-20.10.10.tgz b/docker-20.10.10.tgz new file mode 100644 index 0000000..69166f9 Binary files /dev/null and b/docker-20.10.10.tgz differ diff --git a/docker-20.10.24.tgz b/docker-20.10.24.tgz new file mode 100644 index 0000000..6236104 Binary files /dev/null and b/docker-20.10.24.tgz differ diff --git a/docker-compose-1.27.4 b/docker-compose-1.27.4 new file mode 100644 index 0000000..339711f Binary files /dev/null and b/docker-compose-1.27.4 differ diff --git a/docker-compose-1.29.2 b/docker-compose-1.29.2 new file mode 100644 index 0000000..d5fb258 Binary files /dev/null and b/docker-compose-1.29.2 differ diff --git a/install_docker_offline.sh b/install_docker_offline.sh new file mode 100644 index 0000000..f8abf98 --- /dev/null +++ b/install_docker_offline.sh @@ -0,0 +1,195 @@ +#!/bin/bash +set -e + +DOCKER_TGZ="docker.tgz" +COMPOSE_BIN="docker-compose" +INSTALL_DIR="/usr/bin" +SYSTEMD_DIR="/etc/systemd/system" +DAEMON_JSON="/etc/docker/daemon.json" + +# =============================== +# 多个镜像加速器 (按需修改) +# =============================== +REGISTRY_MIRRORS=( +"https://docker-cf.registry.cyou" +"https://docker.registry.cyou" +"https://hub.uuuadc.top" +"https://docker.anyhub.us.kg" +"https://dockerhub.jobcher.com" +"https://dockerhub.icu" +"https://docker.ckyl.me" +"https://docker.awsl9527.cn" +"https://docker.rainbond.cc" +"https://docker.1panel.live" +"https://docker.1ms.run" +"https://hub.rat.dev" +"https://docker.jsdelivr.fyi" +"https://dockerpull.com" +"https://dockerproxy.cn" +"https://docker.m.daocloud.io" +"https://hub.gog.email" +"https://7dg5h62m.mirror.aliyuncs.com" +"https://registry.cn-hangzhou.aliyuncs.com" +"https://dockerhub.azk8s.cn", +"https://hub-mirror.c.163.com" +"https://mirrors.ustc.edu.cn" +"https://hub.c.163.com" +) + +echo "=== Docker Offline Installer (Full Version) ===" + +############################################### +# 函数:卸载旧 Docker +############################################### +uninstall_old_docker() { + echo "------ 开始卸载旧 Docker ------" + + # systemd 停止服务 + systemctl stop docker >/dev/null 2>&1 || true + systemctl stop docker.socket >/dev/null 2>&1 || true + + # 删除二进制 + rm -f /usr/bin/docker + rm -f /usr/bin/dockerd + rm -f /usr/bin/containerd + rm -f /usr/bin/runc + rm -f /usr/local/bin/docker-compose + + # 针对 rpm 系统(CentOS / RHEL) + if command -v rpm >/dev/null 2>&1; then + rpm -qa | grep -E "docker|containerd" | xargs -r rpm -e --nodeps + fi + + # 针对 deb 系统(Ubuntu / Debian) + if command -v dpkg >/dev/null 2>&1; then + apt-get remove -y docker docker-engine docker.io containerd runc >/dev/null 2>&1 || true + fi + + echo "------ 卸载旧 Docker 完成 ------" +} + +############################################### +# 执行卸载 +############################################### +uninstall_old_docker + + +############################################### +# 安装 Docker +############################################### +echo "1) 安装 Docker 二进制程序..." +if [ ! -f "$DOCKER_TGZ" ]; then + echo "[ERROR] 未找到 docker.tgz,请放在当前目录" + exit 1 +fi + +tar -xf $DOCKER_TGZ +cd docker + +cp docker* $INSTALL_DIR/ +[ -f "containerd" ] && cp containerd $INSTALL_DIR/ +[ -f "runc" ] && cp runc $INSTALL_DIR/ + +cd .. + + +############################################### +# 创建 systemd 服务 +############################################### +echo "2) 创建 systemd 服务文件..." + +cat > $SYSTEMD_DIR/docker.service < $DAEMON_JSON <