docker 一键安装脚本

docker 一键安装脚本

Docker 离线安装包,助你轻松部署!

想体验 Docker 的便捷,却受限于网络环境? 我们为你提供 Docker 离线安装包,解决你的燃眉之急!

获取方式:

  1. 关注我们的公众号
  2. 在公众号后台回复关键词:Docker离线
  3. 即可获得下载链接和详细安装教程!

离线安装,快速上手,快来试试吧!

image

一、自己动手

1、九阳神功(自己动手)

1、下载 docker 离线安装包
下载最新版本的 docker (或者选择自己想要安装的版本)到本地。

1)docker 下载地址:Docker 版本下载 || Docker-compose 版本下载 || 对应版本查看

2)如果需要根据后面迭代更新最新版本直接下载替换conf中的docker-compose和package中的docker压缩包即可

PS: 此脚本针对 CentOS 系统设计和测试,其他系统可能不兼容。

2、编写执行脚本

先创建对应目录,里面需要 package,conf,dockerWork 三个目录

前面两个是放安装包和执行脚本,最后一个是工作目录

mkdir -p /mnt/data/install/conf  /mnt/data/install/package  /mnt/data/dockerWork

1、安装脚本 installDocker.sh

#!/bin/bash
# 定义字体颜色
RE='\033[1;31m' # Red color code
GR='\033[1;32m' # Green color code
BL='\033[1;34m' # Blue color code
PU='\033[1;35m' # Purple(紫) color code
SK='\033[1;36m' # SkyBlue(天蓝) color code
NC='\033[0m'    # Reset color to normal

echo -e "${PU}######## 开始安装 Docker ########${NC}"

# =============================
# 解压 Tar 包并授权
# =============================
echo '解压 tar 包并赋予权限...'
tar -xvf ./package/docker* -C ./package && chmod 777 ./package/docker/*

# =============================
# 移动二进制文件到系统路径
# =============================
echo '将 Docker 移到 /usr/bin 目录下...'
cp -r ./package/docker/* /usr/bin/

echo '将 docker.service 移到 /etc/systemd/system/ 目录并授权...' 
cp -r ./conf/docker.service /etc/systemd/system/ && chmod 777 /etc/systemd/system/docker.service

# =============================
# 设置 Docker 工作目录(支持自定义路径)
# =============================
echo -e "${PU}请输入 Docker 数据存储路径(默认为 /mnt/data/dockerWork):${NC}"
read -p "> " CUSTOM_PATH

# 如果未输入,则使用默认路径
if [ -z "$CUSTOM_PATH" ]; then
    DOCKER_DATA_ROOT="/mnt/data/dockerWork"
else
    DOCKER_DATA_ROOT="$CUSTOM_PATH"
fi

# 确保目录存在
if [ ! -d "$DOCKER_DATA_ROOT" ]; then
    echo -e "${PU}检测到目标路径不存在,正在创建目录...${NC}"
    mkdir -p "$DOCKER_DATA_ROOT"
fi

echo -e "${GR}使用的 Docker 数据根路径为:${DOCKER_DATA_ROOT}${NC}"

# =============================
# 创建必要目录并写入配置文件
# =============================
echo '创建 Docker 相关目录...'
mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-EOF
{
    "data-root": "$DOCKER_DATA_ROOT",
    "insecure-registries": [
        "registry.cn-shenzhen.aliyuncs.com"
    ],
    "registry-mirrors": [
        "https://docker.1panel.live",
  		"https://docker.m.daocloud.io",
        "https://docker.1ms.run",
        "https://docker.yonght.top"
        "https://hub-mirror.c.163.com",
        "https://docker.m.daocloud.io",
        "https://ghcr.io",
        "https://mirror.baidubce.com",
        "https://docker.nju.edu.cn",
        "https://mirror.baidubce.com",
        "https://registry.docker-cn.com",
        "http://f1361db2.m.daocloud.io",
        "https://dockerhub.azk8s.cn",
        "https://docker.mirrors.ustc.edu.cn",
        "https://ud6340vz.mirror.aliyuncs.com",
        "https://reg-mirror.qiniu.com",
        "https://hub-mirror.c.163.com",
        "https://mirror.ccs.tencentyun.com"
    ]
}
EOF

# =============================
# 启动服务并设置开机自启
# =============================
echo '重新加载 Systemd 配置并重启 Docker...'
systemctl daemon-reload && systemctl restart docker
echo '设置 Docker 开机自启动...'
systemctl enable docker.service

echo '######## Docker 版本信息 ########'
docker info

# =============================
# 安装 Docker Compose
# =============================
echo '将 docker-compose 移到 /usr/local/bin/ 目录...'
cp ./conf/docker-compose* /usr/local/bin/docker-compose && chmod 777 /usr/local/bin/docker-compose

# =============================
# 验证安装结果
# =============================
echo -e "${PU}######## 验证 Docker 安装结果... ########${NC}"
if ! command -v docker &>/dev/null; then
    echo -e "${RE}❌ Docker 安装失败!${NC}"
    exit -1
fi
echo -e "${GR}✅ Docker 安装成功!!!${NC}"

echo -e "${PU}######## 验证 Docker Compose 安装结果... ########${NC}"
if ! command -v docker-compose &>/dev/null; then
    echo -e "${RE}❌ Docker Compose 安装失败...${NC}"
    echo '尝试将 /usr/local/bin 添加到环境变量中...'
    echo 'export PATH="$PATH:/usr/local/bin"' | sudo tee -a /etc/profile > /dev/null
    source /etc/profile
    if ! command -v docker-compose &>/dev/null; then
        echo -e "${RE}❌ Docker Compose 仍然无法找到!${NC}"
        exit -1
    fi
fi
echo -e "${GR}✅ Docker Compose 安装成功!!!${NC}"

# =============================
# 清理临时文件
# =============================
rm -rf ./package/docker

echo -e "${GR} 所有操作已完成!${NC}"

2、卸载脚本 uninstallDocker.sh

#/bin/bash

echo "停止所有容器服务"
docker stop $(docker ps -a -q)
echo "删除所有容器"
docker rm $(docker ps -a -q)
echo "删除docker所有镜像"
docker rmi -f $(docker images -q)
echo '停止docker服务...'
systemctl stop docker
echo '取消开机自启...'
systemctl disable docker
echo '删除docker相关包...'
cd /usr/bin/ && rm -rf containerd* ctr docker* dockerd runc
echo '取消docker.service注册文件...'
cd /etc/systemd/system/ && rm -rf docker.service

# 获取docker数据目录
DOCKER_WORK_DIR="/mnt/data/dockerWork"
if [ -f "/etc/docker/daemon.json" ]; then
    DATA_ROOT=$(grep -o '"data-root"[[:space:]]*:[[:space:]]*"[^"]*"' /etc/docker/daemon.json | sed 's/"data-root"[[:space:]]*:[[:space:]]*"\([^"]*\)"/\1/')
    if [ ! -z "$DATA_ROOT" ]; then
        DOCKER_WORK_DIR="$DATA_ROOT"
    fi
fi

echo "删除docker配置文件...DOCKER_WORK_DIR=$DOCKER_WORK_DIR"
cd /etc/ && rm -rf docker/*
if [ -d "$DOCKER_WORK_DIR" ]; then
    rm -rf "$DOCKER_WORK_DIR"
fi

echo 'yum方式清空docker配置文件...'
yum remove -y docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker && rm -rf /var/lib/containerd
echo '重新加载配置文件...'
systemctl daemon-reload
echo 'docker卸载成功!!!'

echo '删除docker-compose...'
rm -rf /usr/local/bin/docker-compose
echo 'docker-compose卸载成功!!!'

3、编写 docker.service

当前文件放在上面创建的 conf 中

[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

TimeoutSec=0

RestartSec=2

ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT
Restart=always

TimeoutStartSec=0

LimitNOFILE=infinity
LimitNPROC=infinity

LimitCORE=infinity

Delegate=yes
KillMode=process
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

上传 jar 注意路径

二、乾坤大挪移(cv大法)

网盘中下载对应压缩包

# 解压并授权
tar -zxvf docker-28.3.3_install.tar.gz && cd dockerInstall && chmod 755 installDocker.sh uninstallDocker.sh

#安装安装命令
sh installDocker.sh

#卸载
sh uninstallDocker.sh 

image

提示输入docker-data的路径,正常如果不配置会到根目录中,所以这里增加配置支持自定义目录,如果没有就给默认目录

image

安装完成后会提示成功,表示都已经安装好了,后面就可以愉快使用了,当前离线安装主要是针对只能使用内网或者没有网络的环境还需要使用docker的情况

image

卸载会删除所有docker相关内容,停止容器删除镜像和对应目录

image

Docker 安装愁白头? 离线安装解千愁!

Docker 大法好,但下载安装真烦恼! 网络卡成翔,进度条不动摇!

别怕! 救星来了! Docker 离线安装包,让你摆脱网络魔爪,轻松玩转容器技术!

关注公众号,回复 “Docker离线” , 告别漫长等待,迎接飞速安装!

image

posted @ 2025-12-04 11:33  莫小牙阝  阅读(1)  评论(0)    收藏  举报