From 1a755ec0cee7a1f4f14f7ca3d8ffaf4135bdd778 Mon Sep 17 00:00:00 2001 From: huty Date: Tue, 20 May 2025 16:25:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0README.md=EF=BC=9B=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=20docker-tools=20=E8=87=B3=201.3.0=20=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-tools/docker-tools | 525 ++++++++++++++++--------------- releases/docker-tools_v1.3.0.zip | Bin 0 -> 6437 bytes 2 files changed, 271 insertions(+), 254 deletions(-) create mode 100644 releases/docker-tools_v1.3.0.zip diff --git a/docker-tools/docker-tools b/docker-tools/docker-tools index dcbe61b..90d8bdc 100755 --- a/docker-tools/docker-tools +++ b/docker-tools/docker-tools @@ -4,7 +4,7 @@ # 参数配置 ## 版本号 -VERSION=1.2.1 +VERSION=1.3.0 ## 当前的日期、日期时间 DATE=`date +%Y%m%d` DATETIME=`date +%Y%m%d`_`date +%H%M%S` @@ -27,7 +27,7 @@ DOCKER_PACKAGE_NAME=docker-28.1.1.tgz ## 是否安装 Docker Compose NEED_INSTALL_COMPOSE=true ## Docker Compose 版本号 -DOCKER_COMPOSE_VERSION=v2.36.0 +DOCKER_COMPOSE_VERSION=v2.36.1 ## Docker Compose 安装包下载地址(在线安装时使用) DOCKER_COMPOSE_PACKAGE_URL=https://github.com/docker/compose/releases/download ## Docker Compose 安装包名称(离线安装时使用) @@ -44,6 +44,22 @@ DOCKER_SWARM_MANAGER_IP=127.0.0.1 DOCKER_SWARM_TOKEN=123456 # 相关方法 +## 日志打印 +info () { + echo '[INFO] ['`date +%Y-%m-%d` `date +%H:%M:%S`'] ' "$@" +} + +## 警告打印 +warning () { + echo '[WARN] ['`date +%Y-%m-%d` `date +%H:%M:%S`'] ' "$@" >&2 +} + +## 错误打印 +error () { + echo '[ERROR] ['`date +%Y-%m-%d` `date +%H:%M:%S`'] ' "$@" >&2 + exit 1 +} + ## 帮助信息 help () { version @@ -93,64 +109,64 @@ help () { ## 版本号 version () { - echo 'docker-tools '$VERSION'( HTY1024 )' + echo 'docker-tools '${VERSION}'( HTY1024 )' } ## 查询 CPU 架构 -searchCPUArch () { - echo '------------------------------ 开始设置 CPU 架构... ------------------------------' +search_cpu_arch () { + info '------------------------------ 开始设置 CPU 架构... ------------------------------' CPU_ARCH=`arch` - echo '------------------------------ CPU 架构设置完成! ------------------------------' + info '------------------------------ CPU 架构设置完成! ------------------------------' } ## 创建目录 -createDir () { - echo '------------------------------ 开始创建相关目录... ------------------------------' +create_dir () { + info '------------------------------ 开始创建相关目录... ------------------------------' - mkdir -pv $DOCKER_INSTALL_DIR - mkdir -pv $DOCKER_DATA_DIR + mkdir -pv ${DOCKER_INSTALL_DIR} + mkdir -pv ${DOCKER_DATA_DIR} mkdir -pv /etc/docker - echo '------------------------------ 所需目录创建完成! ------------------------------' + info '------------------------------ 所需目录创建完成! ------------------------------' } ## 删除目录 -deleteDir () { - echo '------------------------------ 开始删除相关目录... ------------------------------' +delete_dir () { + info '------------------------------ 开始删除相关目录... ------------------------------' - rm -rf $DOCKER_INSTALL_DIR - rm -rf $DOCKER_DATA_DIR + rm -rf ${DOCKER_INSTALL_DIR} + rm -rf ${DOCKER_DATA_DIR} rm -rf /etc/docker - echo '------------------------------ 相关目录删除完成! ------------------------------' + info '------------------------------ 相关目录删除完成! ------------------------------' } ## 创建用户 -createUser () { - echo '------------------------------ 开始创建 Docker 用户... ------------------------------' +create_user () { + info '------------------------------ 开始创建 Docker 用户... ------------------------------' groupadd -r -g 1001 docker useradd -r -g docker -u 1001 -d /home/docker -s /bin/bash docker - echo '------------------------------ Docker 用户创建完成! ------------------------------' + info '------------------------------ Docker 用户创建完成! ------------------------------' } ## 删除用户 -deleteUser () { - echo '------------------------------ 开始删除 Docker 用户... ------------------------------' +delete_user () { + info '------------------------------ 开始删除 Docker 用户... ------------------------------' groupdel docker userdel docker - echo '------------------------------ Docker 用户删除完成! ------------------------------' + info '------------------------------ Docker 用户删除完成! ------------------------------' } ## 配置系统参数 -configSystem () { - echo '------------------------------ 开始配置系统参数... ------------------------------' +config_system () { + info '------------------------------ 开始配置系统参数... ------------------------------' modprobe br_netfilter echo 'net.bridge.bridge-nf-call-ip6tables = 1' > /etc/sysctl.d/docker.conf @@ -158,323 +174,325 @@ configSystem () { echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.d/docker.conf sysctl --system - echo '------------------------------ 系统参数配置完成! ------------------------------' + info '------------------------------ 系统参数配置完成! ------------------------------' } ## 移除参数 -removeSystemConfig () { - echo '------------------------------ 开始删除系统参数... ------------------------------' +remove_system_config () { + info '------------------------------ 开始删除系统参数... ------------------------------' rm -rf /etc/sysctl.d/docker.conf sysctl --system - echo '------------------------------ 系统参数删除完成! ------------------------------' + info '------------------------------ 系统参数删除完成! ------------------------------' } ## 下载 Docker 安装包 -downloadDockerEnginePackage () { - echo '------------------------------ 开始下载 Docker 安装包... ------------------------------' +download_docker_engine_package () { + info '------------------------------ 开始下载 Docker 安装包... ------------------------------' - wget $DOCKER_PACKAGE_URL/$CPU_ARCH/docker-$DOCKER_VERSION.tgz - DOCKER_PACKAGE_NAME=docker-$DOCKER_VERSION.tgz + wget ${DOCKER_PACKAGE_URL}/${CPU_ARCH}/docker-${DOCKER_VERSION}.tgz + DOCKER_PACKAGE_NAME=docker-${DOCKER_VERSION}.tgz - echo '------------------------------ Docker 安装包下载完成! ------------------------------' + info '------------------------------ Docker 安装包下载完成! ------------------------------' } ## 删除 Docker 安装包 -removeDockerEnginePackage () { - echo '------------------------------ 开始删除 Docker 安装包... ------------------------------' +remove_docker_engine_package () { + info '------------------------------ 开始删除 Docker 安装包... ------------------------------' - rm -rf $DOCKER_PACKAGE_NAME + rm -rf ${DOCKER_PACKAGE_NAME} - echo '------------------------------ Docker 安装包删除完成! ------------------------------' + info '------------------------------ Docker 安装包删除完成! ------------------------------' } ## 下载 Docker Compose 安装包 -downloadDockerComposePackage () { - echo '------------------------------ 开始下载 Docker Compose 安装包... ------------------------------' +download_docker_compose_package () { + info '------------------------------ 开始下载 Docker Compose 安装包... ------------------------------' - wget $DOCKER_COMPOSE_PACKAGE_URL/$DOCKER_COMPOSE_VERSION/docker-compose-linux-$CPU_ARCH - DOCKER_COMPOSE_PACKAGE_NAME=docker-compose-linux-$CPU_ARCH + wget ${DOCKER_COMPOSE_PACKAGE_URL}/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-${CPU_ARCH} + DOCKER_COMPOSE_PACKAGE_NAME=docker-compose-linux-${CPU_ARCH} - echo '------------------------------ Docker Compose 安装包下载完成! ------------------------------' + info '------------------------------ Docker Compose 安装包下载完成! ------------------------------' } ## 删除 Docker Compose 安装包 -removeDockerComposePackage () { - echo '------------------------------ 开始删除 Docker Compose 安装包... ------------------------------' +remove_docker_compose_package () { + info '------------------------------ 开始删除 Docker Compose 安装包... ------------------------------' - rm -rf $DOCKER_COMPOSE_PACKAGE_NAME + rm -rf ${DOCKER_COMPOSE_PACKAGE_NAME} - echo '------------------------------ Docker Compose 安装包删除完成! ------------------------------' + info '------------------------------ Docker Compose 安装包删除完成! ------------------------------' } ## 安装 Docker Engine -installDockerEngine () { - echo '------------------------------ 开始安装 Docker Engine... ------------------------------' +install_docker_engine () { + info '------------------------------ 开始安装 Docker Engine... ------------------------------' - tar zxvf $DOCKER_PACKAGE_NAME -C $DOCKER_INSTALL_DIR --strip-components 1 + tar zxvf ${DOCKER_PACKAGE_NAME} -C ${DOCKER_INSTALL_DIR} --strip-components 1 - echo '------------------------------ Docker Engine 安装完成! ------------------------------' + info '------------------------------ Docker Engine 安装完成! ------------------------------' } ## 备份当前 Docker Engine () { -backupDockerEngine () { - echo '------------------------------ 开始备份 Docker Engine... ------------------------------' +backup_docker_engine () { + info '------------------------------ 开始备份 Docker Engine... ------------------------------' - cp -rpf $DOCKER_INSTALL_DIR $DOCKER_INSTALL_DIR'_bak_'$DATETIME + cp -rpf ${DOCKER_INSTALL_DIR} ${DOCKER_INSTALL_DIR}'_bak_'${DATETIME} - echo '------------------------------ Docker Engine 备份完成! ------------------------------' + info '------------------------------ Docker Engine 备份完成! ------------------------------' } ## 安装 Dokcer Compose -installDockerCompose () { - echo '------------------------------ 开始安装 Docker Compose... ------------------------------' +install_docker_compose () { + info '------------------------------ 开始安装 Docker Compose... ------------------------------' - cp -rpf ./$DOCKER_COMPOSE_PACKAGE_NAME $DOCKER_INSTALL_DIR/docker-compose - chown docker.docker $DOCKER_INSTALL_DIR/docker-compose - chmod +x $DOCKER_INSTALL_DIR/docker-compose + cp -rpf ./${DOCKER_COMPOSE_PACKAGE_NAME} ${DOCKER_INSTALL_DIR}/docker-compose + chown docker.docker ${DOCKER_INSTALL_DIR}/docker-compose + chmod +x ${DOCKER_INSTALL_DIR}/docker-compose - echo '------------------------------ Docker Compose 安装完成! ------------------------------' + info '------------------------------ Docker Compose 安装完成! ------------------------------' } ## 备份当前 Docker Coimpose -backupDockerCompose () { - echo '------------------------------ 开始备份 Docker Compose... ------------------------------' +backup_docker_compose () { + info '------------------------------ 开始备份 Docker Compose... ------------------------------' - mkdir -pv $DOCKER_INSTALL_DIR'_bak_'$DATETIME - cp -rpf $DOCKER_INSTALL_DIR/docker-compose $DOCKER_INSTALL_DIR'_bak_'$DATETIME/docker-compose + mkdir -pv ${DOCKER_INSTALL_DIR}'_bak_'${DATETIME} + cp -rpf ${DOCKER_INSTALL_DIR}/docker-compose ${DOCKER_INSTALL_DIR}'_bak_'${DATETIME}/docker-compose - echo '------------------------------ Docker Compose 备份完成! ------------------------------' + info '------------------------------ Docker Compose 备份完成! ------------------------------' } ## 配置环境变量 -configEnv () { - echo '------------------------------ 开始配置环境变量... ------------------------------' +config_env () { + info '------------------------------ 开始配置环境变量... ------------------------------' - cp -rpf ~/.bashrc ~/.bashrc.bak.$DATETIME + cp -rpf ~/.bashrc ~/.bashrc.bak.${DATETIME} echo '# Docker Env Begin' >> ~/.bashrc - echo 'export DOCKER_HOME='$DOCKER_INSTALL_DIR >> ~/.bashrc + echo 'export DOCKER_HOME='${DOCKER_INSTALL_DIR} >> ~/.bashrc echo 'export PATH=$PATH:$DOCKER_HOME' >> ~/.bashrc echo '# Docker Env End' >> ~/.bashrc source ~/.bashrc - cp -rpf /etc/profile /etc/profile.bak.$DATETIME + cp -rpf /etc/profile /etc/profile.bak.${DATETIME} echo '# Docker Env Begin' >> /etc/profile - echo 'export DOCKER_HOME='$DOCKER_INSTALL_DIR >> /etc/profile + echo 'export DOCKER_HOME='${DOCKER_INSTALL_DIR} >> /etc/profile echo 'export PATH=$PATH:$DOCKER_HOME' >> /etc/profile echo '# Docker Env End' >> /etc/profile source /etc/profile - echo '------------------------------ 环境变量配置完成! ------------------------------' + info '------------------------------ 环境变量配置完成! ------------------------------' } ## 移除环境变量 -removeEnv () { - echo '------------------------------ 开始移除环境变量... ------------------------------' +remove_env () { + info '------------------------------ 开始移除环境变量... ------------------------------' - cp -rpf ~/.bashrc ~/.bashrc.bak.$DATETIME + cp -rpf ~/.bashrc ~/.bashrc.bak.${DATETIME} sed -i 's/# Docker Env Begin//g' ~/.bashrc - sed -i 's#export DOCKER_HOME='$DOCKER_INSTALL_DIR'##g' ~/.bashrc + sed -i 's#export DOCKER_HOME='${DOCKER_INSTALL_DIR}'##g' ~/.bashrc sed -i 's/export PATH=$PATH:$DOCKER_HOME//g' ~/.bashrc sed -i 's/# Docker Env End//g' ~/.bashrc source ~/.bashrc - cp -rpf /etc/profile /etc/profile.bak.$DATETIME + cp -rpf /etc/profile /etc/profile.bak.${DATETIME} sed -i 's/# Docker Env Begin//g' /etc/profile - sed -i 's#export DOCKER_HOME='$DOCKER_INSTALL_DIR'##g' /etc/profile + sed -i 's#export DOCKER_HOME='${DOCKER_INSTALL_DIR}'##g' /etc/profile sed -i 's/export PATH=$PATH:$DOCKER_HOME//g' /etc/profile sed -i 's/# Docker Env End//g' /etc/profile source /etc/profile - echo '------------------------------ 环境变量移除完成! ------------------------------' + info '------------------------------ 环境变量移除完成! ------------------------------' } ## 配置系统服务 -configService () { - echo '------------------------------ 开始配置系统服务... ------------------------------' +config_service () { + info '------------------------------ 开始配置系统服务... ------------------------------' cp -rpf docker.service /usr/lib/systemd/system/docker.service cp -rpf docker.socket /usr/lib/systemd/system/docker.socket - sed -i 's#{{DOCKER_BIN_DIR}}#'$DOCKER_INSTALL_DIR'#g' /usr/lib/systemd/system/docker.service + sed -i 's#{{DOCKER_BIN_DIR}}#'${DOCKER_INSTALL_DIR}'#g' /usr/lib/systemd/system/docker.service systemctl daemon-reload - echo '------------------------------ 系统服务配置完成! ------------------------------' + info '------------------------------ 系统服务配置完成! ------------------------------' } ## 移除系统服务 -removeService () { - echo '------------------------------ 开始移除系统服务... ------------------------------' +remove_service () { + info '------------------------------ 开始移除系统服务... ------------------------------' rm -rf /usr/lib/systemd/system/docker.service rm -rf /usr/lib/systemd/system/docker.socket systemctl daemon-reload - echo '------------------------------ 系统服务移除完成! ------------------------------' + info '------------------------------ 系统服务移除完成! ------------------------------' } ## 配置 Docker -configDockerEngine () { - echo '------------------------------ 开始配置 Docker... ------------------------------' +config_docker_engine () { + info '------------------------------ 开始配置 Docker... ------------------------------' cp -rpf daemon.json /etc/docker/daemon.json - sed -i 's#{{DOCKER_DATA_DIR}}#'$DOCKER_DATA_DIR'#g' /etc/docker/daemon.json + sed -i 's#{{DOCKER_DATA_DIR}}#'${DOCKER_DATA_DIR}'#g' /etc/docker/daemon.json - if [ $NEED_ENABLE_DOCKER_SWARM == "false" ]; then + if [ ${NEED_ENABLE_DOCKER_SWARM} == "false" ]; then sed -i 's#{{DOCKER_LIVE_RESTORE}}#true#g' /etc/docker/daemon.json fi - if [ $NEED_ENABLE_DOCKER_SWARM == "true" ]; then + if [ ${NEED_ENABLE_DOCKER_SWARM} == "true" ]; then sed -i 's#{{DOCKER_LIVE_RESTORE}}#false#g' /etc/docker/daemon.json fi - chown -R docker.docker $DOCKER_INSTALL_DIR - chmod -R 755 $DOCKER_INSTALL_DIR - chown -R docker.docker $DOCKER_DATA_DIR - hmod -R 755 $DOCKER_DATA_DIR + chown -R docker.docker ${DOCKER_INSTALL_DIR} + chmod -R 755 ${DOCKER_INSTALL_DIR} + chown -R docker.docker ${DOCKER_DATA_DIR} + chmod -R 755 ${DOCKER_DATA_DIR} - echo '------------------------------ Docker 配置完成! ------------------------------' + info '------------------------------ Docker 配置完成! ------------------------------' } ## 启动 Docker -startDocker () { - echo '------------------------------ 开始启动 Docker... ------------------------------' +start_docker () { + info '------------------------------ 开始启动 Docker... ------------------------------' systemctl start docker - echo '------------------------------ Docker 启动完成! ------------------------------' + info '------------------------------ Docker 启动完成! ------------------------------' } ## 停止 Docker -stopDocker () { - echo '------------------------------ 开始停止 Docker... ------------------------------' +stop_docker () { + info '------------------------------ 开始停止 Docker... ------------------------------' systemctl stop docker - echo '------------------------------ Docker 停止完成! ------------------------------' + info '------------------------------ Docker 停止完成! ------------------------------' } ## 重启 Docker -restartDocker () { - stopDocker - startDocker +restart_docker () { + stop_docker + start_docker } ## 设置 Docker 自启动 -enableDocker () { - echo '------------------------------ 开始设置 Docker 自启动... ------------------------------' +enable_docker () { + info '------------------------------ 开始设置 Docker 自启动... ------------------------------' systemctl enable docker - echo '------------------------------ Docker 自启动设置完成! ------------------------------' + info '------------------------------ Docker 自启动设置完成! ------------------------------' } ## 取消 Docker 自启动 -disableDocker () { - echo '------------------------------ 开始取消 Docker 自启动... ------------------------------' +disable_docker () { + info '------------------------------ 开始取消 Docker 自启动... ------------------------------' systemctl disable docker - echo '------------------------------ Docker 自启动取消完成! ------------------------------' + info '------------------------------ Docker 自启动取消完成! ------------------------------' } ## 查询 Dokcer 信息 -infoDocker () { - echo '------------------------------ 开始查询 Docker 信息... ------------------------------' +info_docker () { + info '------------------------------ 开始查询 Docker 信息... ------------------------------' + docker info - echo '------------------------------ Docker 信息查询完成! ------------------------------' + + info '------------------------------ Docker 信息查询完成! ------------------------------' } ## 安装 Docker Engine -onlyInstallDockerEngine () { - echo '------------------------------ 开始安装 Docker Engine... ------------------------------' +only_install_docker_engine () { + info '------------------------------ 开始安装 Docker Engine... ------------------------------' - searchCPUArch - createDir - createUser - configSystem - if [ $NEED_OFFLINE_INSTALL == "false" ];then - downloadDockerEnginePackage + search_cpu_arch + create_dir + create_user + config_system + if [ ${NEED_OFFLINE_INSTALL} == "false" ];then + download_docker_engine_package fi - installDockerEngine - configEnv - configService - configDockerEngine - startDocker - if [ $NEED_ENABLE_DOCKER == "true" ];then - enableDocker + install_docker_engine + config_env + config_service + config_docker_engine + start_docker + if [ ${NEED_ENABLE_DOCKER} == "true" ];then + enable_docker fi - infoDocker + info_docker - echo '------------------------------ Docker Engine 安装完成! ------------------------------' + info '------------------------------ Docker Engine 安装完成! ------------------------------' } ## 安装 Docker Compose -onlyInstallDockerCompose () { - echo '------------------------------ 开始安装 Docker Compose... ------------------------------' +only_install_docker_compose () { + info '------------------------------ 开始安装 Docker Compose... ------------------------------' - searchCPUArch - if [ $NEED_OFFLINE_INSTALL == "false" ]; then - downloadDockerComposePackage + search_cpu_arch + if [ ${NEED_OFFLINE_INSTALL} == "false" ]; then + download_docker_compose_package fi - installDockerCompose - restartDocker - infoDocker + install_docker_compose + restart_docker + info_docker - echo '------------------------------ Docker Conpose 安装完成! ------------------------------' + info '------------------------------ Docker Conpose 安装完成! ------------------------------' } ## 更新 Dokcer Engine -onlyUpdateDockerEngine () { - echo '------------------------------ 开始更新 Docker Engine... ------------------------------' +only_update_docker_engine () { + info '------------------------------ 开始更新 Docker Engine... ------------------------------' - searchCPUArch - if [ $NEED_OFFLINE_INSTALL == "false" ];then - downloadDockerEnginePackage + search_cpu_arch + if [ ${NEED_OFFLINE_INSTALL} == "false" ];then + download_docker_engine_package fi - disableDocker - stopDocker - backupDockerEngine - installDockerEngine - startDocker - if [ $NEED_ENABLE_DOCKER == "true" ];then - enableDocker + disable_docker + stop_docker + backup_docker_engine + install_docker_engine + start_docker + if [ ${NEED_ENABLE_DOCKER} == "true" ];then + enable_docker fi - infoDocker + info_docker - echo '------------------------------ Docker Engine 更新完成! ------------------------------' + info '------------------------------ Docker Engine 更新完成! ------------------------------' } ## 更新 Dokcer Compose -onlyUpdateDockerCompose () { - echo '------------------------------ 开始更新 Docker Compose... ------------------------------' +only_update_docker_compose () { + info '------------------------------ 开始更新 Docker Compose... ------------------------------' - searchCPUArch - if [ $NEED_OFFLINE_INSTALL == "false" ]; then - downloadDockerComposePackage + search_cpu_arch + if [ ${NEED_OFFLINE_INSTALL} == "false" ]; then + download_docker_compose_package fi - backupDockerCompose - installDockerCompose - restartDocker - infoDocker + backup_docker_compose + install_docker_compose + restart_docker + info_docker - echo '------------------------------ Docker Conpose 更新完成! ------------------------------' + info '------------------------------ Docker Conpose 更新完成! ------------------------------' } ## 启用 Docker Swarm -onlyEnableDockerSwarm () { - echo '------------------------------ 开始启用 Docker Swarm... ------------------------------' +only_enable_docker_swarm () { + info '------------------------------ 开始启用 Docker Swarm... ------------------------------' sed -i 's#"live-restore": true#"live-restore": false#g' /etc/docker/daemon.json - restartDocker + restart_docker - if [ $DOCKER_SWARM_ROLE == "manager" ]; then - docker swarm init --advertise-addr $DOCKER_SWARM_MANAGER_IP + if [ ${DOCKER_SWARM_ROLE} == "manager" ]; then + docker swarm init --advertise-addr ${DOCKER_SWARM_MANAGER_IP} fi - if [ $DOCKER_SWARM_ROLE == "worker" ]; then - docker swarm join --token $DOCKER_SWARM_TOKEN $DOCKER_SWARM_MANAGER_IP:2377 + if [ ${DOCKER_SWARM_ROLE} == "worker" ]; then + docker swarm join --token ${DOCKER_SWARM_TOKEN} ${DOCKER_SWARM_MANAGER_IP}:2377 fi - echo '------------------------------ Docker Swarm 启用完成! ------------------------------' + info '------------------------------ Docker Swarm 启用完成! ------------------------------' } ## 安装 Docker @@ -484,32 +502,32 @@ install () { echo '============================== 开始安装 Docker ...... ==============================' echo '安装参数如下 :' - echo 'CPU 架构 : '$CPU_ARCH - echo 'Docker 安装目录 : '$DOCKER_INSTALL_DIR - echo 'Docker 数据目录 : '$DOCKER_DATA_DIR - echo '是否离线安装 : '$NEED_OFFLINE_INSTALL - echo '是否安装 Docker Engine : '$NEED_INSTALL_ENGINE - echo 'Docker Engine 版本 : '$DOCKER_VERSION - echo 'Docker Engine 安装包下载地址(在线安装时使用): '$DOCKER_PACKAGE_URL - echo 'Docker Engine 安装包名称(离线安装时使用) : '$DOCKER_PACKAGE_NAME - echo '是否安装 Docker Compose : '$NEED_INSTALL_COMPOSE - echo 'Docker Compose 版本 : '$DOCKER_COMPOSE_VERSION - echo 'Docker Compose 安装包下载地址(在线安装时使用) : '$DOCKER_COMPOSE_PACKAGE_URL - echo 'Docker Compose 安装包名称(离线安装时使用) : '$DOCKER_COMPOSE_PACKAGE_NAME - echo '是否开机自动启动: '$NEED_ENABLE_DOCKER - echo '是否启用 Docker Swarm: '$NEED_ENABLE_DOCKER_SWARM + echo 'CPU 架构 : '${CPU_ARCH} + echo 'Docker 安装目录 : '${DOCKER_INSTALL_DIR} + echo 'Docker 数据目录 : '${DOCKER_DATA_DIR} + echo '是否离线安装 : '${NEED_OFFLINE_INSTALL} + echo '是否安装 Docker Engine : '${NEED_INSTALL_ENGINE} + echo 'Docker Engine 版本 : '${DOCKER_VERSION} + echo 'Docker Engine 安装包下载地址(在线安装时使用): '${DOCKER_PACKAGE_URL} + echo 'Docker Engine 安装包名称(离线安装时使用) : '${DOCKER_PACKAGE_NAME} + echo '是否安装 Docker Compose : '${NEED_INSTALL_COMPOSE} + echo 'Docker Compose 版本 : '${DOCKER_COMPOSE_VERSION} + echo 'Docker Compose 安装包下载地址(在线安装时使用) : '${DOCKER_COMPOSE_PACKAGE_URL} + echo 'Docker Compose 安装包名称(离线安装时使用) : '${DOCKER_COMPOSE_PACKAGE_NAME} + echo '是否开机自动启动: '${NEED_ENABLE_DOCKER} + echo '是否启用 Docker Swarm: '${NEED_ENABLE_DOCKER_SWARM} echo '请确认安装参数是否正确,并根据提示进入安装(Y:安装,N:不安装,E:退出):' read NEED_DELETE - case $NEED_DELETE in + case ${NEED_DELETE} in Y) - if [ $NEED_INSTALL_ENGINE == "true" ]; then - onlyInstallDockerEngine + if [ ${NEED_INSTALL_ENGINE} == "true" ]; then + only_install_docker_engine fi - if [ $NEED_INSTALL_COMPOSE == "true" ]; then - onlyInstallDockerCompose + if [ ${NEED_INSTALL_COMPOSE} == "true" ]; then + only_install_docker_compose fi - if [ $NEED_ENABLE_DOCKER_SWARM == "true" ]; then - onlyEnableDockerSwarm + if [ ${NEED_ENABLE_DOCKER_SWARM} == "true" ]; then + only_enable_docker_swarm fi ;; N) @@ -537,19 +555,19 @@ uninstall () { echo '============================== 开始卸载 Docker ...... ==============================' echo '删除目录如下 :' - echo 'Docker 安装目录 : '$DOCKER_INSTALL_DIR - echo 'Docker 数据目录 : '$DOCKER_DATA_DIR + echo 'Docker 安装目录 : '${DOCKER_INSTALL_DIR} + echo 'Docker 数据目录 : '${DOCKER_DATA_DIR} echo '此操作将会卸载 Docker 服务,并删除所有文件(包含 Docker 程序文件、镜像、容器文件等),请确认是否卸载(Y:卸载,N:不卸载,E:退出):' read NEED_DELETE - case $NEED_DELETE in + case ${NEED_DELETE} in Y) - disableDocker - stopDocker - removeService - removeEnv - removeSystemConfig - deleteUser - deleteDir + disable_docker + stop_docker + remove_service + remove_env + remove_system_config + delete_user + delete_dir ;; N) echo '取消卸载。' @@ -576,32 +594,32 @@ update () { echo '============================== 开始更新 Docker ...... ==============================' echo '更新参数如下 :' - echo 'CPU 架构 : '$CPU_ARCH - echo 'Docker 安装目录 : '$DOCKER_INSTALL_DIR - echo 'Docker 数据目录 : '$DOCKER_DATA_DIR - echo '是否离线安装 : '$NEED_OFFLINE_INSTALL - echo '是否安装 Docker Engine : '$NEED_INSTALL_ENGINE - echo 'Docker Engine 版本 : '$DOCKER_VERSION - echo 'Docker Engine 安装包下载地址(在线安装时使用): '$DOCKER_PACKAGE_URL - echo 'Docker Engine 安装包名称(离线安装时使用) : '$DOCKER_PACKAGE_NAME - echo '是否安装 Docker Compose : '$NEED_INSTALL_COMPOSE - echo 'Docker Compose 版本 : '$DOCKER_COMPOSE_VERSION - echo 'Docker Compose 安装包下载地址(在线安装时使用) : '$DOCKER_COMPOSE_PACKAGE_URL - echo 'Docker Compose 安装包名称(离线安装时使用) : '$DOCKER_COMPOSE_PACKAGE_NAME - echo '是否开机自动启动: '$NEED_ENABLE_DOCKER - echo '是否启用 Docker Swarm: '$NEED_ENABLE_DOCKER_SWARM + echo 'CPU 架构 : '${CPU_ARCH} + echo 'Docker 安装目录 : '${DOCKER_INSTALL_DIR} + echo 'Docker 数据目录 : '${DOCKER_DATA_DIR} + echo '是否离线安装 : '${NEED_OFFLINE_INSTALL} + echo '是否安装 Docker Engine : '${NEED_INSTALL_ENGINE} + echo 'Docker Engine 版本 : '${DOCKER_VERSION} + echo 'Docker Engine 安装包下载地址(在线安装时使用): '${DOCKER_PACKAGE_URL} + echo 'Docker Engine 安装包名称(离线安装时使用) : '${DOCKER_PACKAGE_NAME} + echo '是否安装 Docker Compose : '${NEED_INSTALL_COMPOSE} + echo 'Docker Compose 版本 : '${DOCKER_COMPOSE_VERSION} + echo 'Docker Compose 安装包下载地址(在线安装时使用) : '${DOCKER_COMPOSE_PACKAGE_URL} + echo 'Docker Compose 安装包名称(离线安装时使用) : '${DOCKER_COMPOSE_PACKAGE_NAME} + echo '是否开机自动启动: '${NEED_ENABLE_DOCKER} + echo '是否启用 Docker Swarm: '${NEED_ENABLE_DOCKER_SWARM} echo '此操作将会更新当前 Docker 版本,存在一定风险,请确认是否更新(Y:更新,N:不更新,E:退出):' read NEED_UPDATE - case $NEED_UPDATE in + case ${NEED_UPDATE} in Y) - if [ $NEED_INSTALL_ENGINE == "true" ]; then - onlyUpdateDockerEngine + if [ ${NEED_INSTALL_ENGINE} == "true" ]; then + only_update_docker_engine fi - if [ $NEED_INSTALL_COMPOSE == 'true' ]; then - onlyUpdateDockerCompose + if [ ${NEED_INSTALL_COMPOSE} == 'true' ]; then + only_update_docker_compose fi - if [ $NEED_ENABLE_DOCKER_SWARM == "true" ]; then - onlyEnableDockerSwarm + if [ ${NEED_ENABLE_DOCKER_SWARM} == "true" ]; then + only_enable_docker_swarm fi ;; N) @@ -629,74 +647,73 @@ while getopts "v:i:d:p:c:n:r:m:t:abs" opt; do case $opt in v) ## 设置 Docker Engine 版本 - DOCKER_VERSION="$OPTARG" - echo '用户自定义 Docker Engine 版本: '$OPTARG + DOCKER_VERSION="${OPTARG}" + info '用户自定义 Docker Engine 版本: '${OPTARG} ;; i) ## 设置 Docker 安装目录 - DOCKER_INSTALL_DIR="$OPTARG" - echo '用户自定义 Docker 安装目录: '$OPTARG + DOCKER_INSTALL_DIR="${OPTARG}" + info '用户自定义 Docker 安装目录: '${OPTARG} ;; d) ## 设置 Docker 数据目录 - DOCKER_DATA_DIR="$OPTARG" - echo '用户自定义 Docker 数据目录: '$OPTARG + DOCKER_DATA_DIR="${OPTARG}" + info '用户自定义 Docker 数据目录: '${OPTARG} ;; p) ## 设置 Docker 安装包名称 NEED_OFFLINE_INSTALL=true - DOCKER_PACKAGE_NAME="$OPTARG" - echo '【离线安装】用户自定义 Docker Engine 安装包名称: '$OPTARG + DOCKER_PACKAGE_NAME="${OPTARG}" + info '【离线安装】用户自定义 Docker Engine 安装包名称: '${OPTARG} ;; c) ## 设置 Docker Compose 版本 - DOCKER_COMPOSE_VERSION="$OPTARG" - echo '用户自定义 Docker Compose 版本: '$OPTARG + DOCKER_COMPOSE_VERSION="${OPTARG}" + info '用户自定义 Docker Compose 版本: '${OPTARG} ;; n) ## 设置 Docker Compose 安装包名称 NEED_OFFLINE_INSTALL=true - DOCKER_COMPOSE_PACKAGE_NAME="$OPTARG" - echo '【离线安装】用户自定义 Docker Compose 安装包名称: '$OPTARG + DOCKER_COMPOSE_PACKAGE_NAME="${OPTARG}" + info '【离线安装】用户自定义 Docker Compose 安装包名称: '${OPTARG} ;; a) ## 设置仅安装 Docker Engine NEED_INSTALL_ENGINE=true NEED_INSTALL_COMPOSE=false - echo '用户自定义: 仅安装 Docker Engine' + info '用户自定义: 仅安装 Docker Engine' ;; b) ## 设置仅安装 Docker Compose NEED_INSTALL_ENGINE=false NEED_INSTALL_COMPOSE=true - echo '用户自定义: 仅安装 Docker Compose' + info '用户自定义: 仅安装 Docker Compose' ;; s) ## 设置启用 Docker Swarm NEED_ENABLE_DOCKER_SWARM=true - echo '用户自定义: 启用 Docker Swarm' + info '用户自定义: 启用 Docker Swarm' ;; r) ## 设置 Docker Swarm 角色 - if [ $OPTARG != "manager" && $OPTARG != "worker" ]; then - echo '角色错误,可选择:manager、worker' - exit 1 + if [ ${OPTARG} != "manager" && ${OPTARG} != "worker" ]; then + error '角色错误,可选择:manager、worker' fi NEED_ENABLE_DOCKER_SWARM=true - DOCKER_SWARM_ROLE="$OPTARG" - echo '用户自定义: Docker Swarm 角色('$OPTARG')' + DOCKER_SWARM_ROLE="${OPTARG}" + info '用户自定义: Docker Swarm 角色('${OPTARG}')' ;; m) ## 设置 Docker Swarm Manager IP NEED_ENABLE_DOCKER_SWARM=true - DOCKER_SWARM_MANAGER_IP="$OPTARG" - echo '用户自定义: Docker Swarm Manager IP('$OPTARG')' + DOCKER_SWARM_MANAGER_IP="${OPTARG}" + info '用户自定义: Docker Swarm Manager IP('${OPTARG}')' ;; t) ## 设置 Docker Swarm Token NEED_ENABLE_DOCKER_SWARM=true - DOCKER_SWARM_TOKEN="$OPTARG" - echo '用户自定义: Docker Swarm Token('$OPTARG')' + DOCKER_SWARM_TOKEN="${OPTARG}" + info '用户自定义: Docker Swarm Token('${OPTARG}')' ;; esac done @@ -725,22 +742,22 @@ case $@ in info ;; start) - startDocker + start_docker ;; stop) - stopDocker + stop_docker ;; restart) - restartDocker + restart_docker ;; enable) - enableDocker + enable_docker ;; disable) - disableDocker + disable_docker ;; swarm) - onlyEnableDockerSwarm + only_enable_docker_swarm ;; *) help diff --git a/releases/docker-tools_v1.3.0.zip b/releases/docker-tools_v1.3.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..669aa840dcf0e644d5d5704be960cdacbfd80bf0 GIT binary patch literal 6437 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 h{~P`PL(!h)e^a!-