1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
| #!/bin/bash
check_before_run() { if [ $? -eq 0 ]; then true else echo 'docker 安装失败 ......' exit fi }
check() { echo '开始检查系统信息 ......' NAME=$(rpm -q centos-release | awk -F "-" '{print $1}') VERSION=$(rpm -q centos-release | awk -F "-" '{print $3}') EXTENDED=$(rpm -q centos-release | awk -F "-" '{print $4}' | awk -F '.' '{print $6}') if [ "${NAME}" = 'centos' ] && [ "${VERSION}" = '7' ] && [ "${EXTENDED}" = 'x86_64' ]; then true else echo '暂不支持此系统版本' exit fi }
uninstall() { echo '开始卸载旧版本 docker ......'
yum remove -y docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine \ docker-ce \ docker-ce-cli \ docker-compose-plugin \ docker-compose
rm -rf /var/lib/docker* }
before_install() { echo '安装前 ......'
yum install -y yum-utils
PS3='存储库 1: 官方 2:清华大学 3:阿里云, 4: 网易云 5: 中科大 请选择包索引编号: ' REPOS=" https://download.docker.com/linux/centos/docker-ce.repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo http://mirrors.163.com/docker-ce/linux/centos/docker-ce.repo http://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo " select REPO in $REPOS; do yum-config-manager --add-repo "$REPO" break done
yum makecache fast }
install() { echo '安装 ......'
PS="是否安装最新版本 Docker (Y/n):" read -r -p "${PS}" REPLY for (( ; ; )); do case "$REPLY" in Y | y) yum install -y docker-ce docker-ce-cli docker-compose-plugin docker-compose check_before_run break ;; N | n) PS3='请选择需要安装的版本编号: ' select VERSION in $(yum list docker-ce --showduplicates | sort -r | awk -F ' ' 'NR>4{print $2}' | awk -F ':' '{print $2}'); do echo "当前选择版本为: $VERSION" yum install -y docker-ce-"$VERSION" docker-ce-cli-"$VERSION" containerd.io docker-compose-plugin docker-compose check_before_run break done break ;; esac done }
after_install() { echo '安装后 ......'
mkdir -p /etc/docker tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://y0ovxpv6.mirror.aliyuncs.com"], "log-driver": "json-file", "log-opts": { "max-size": "500m", "max-file": "3" } } EOF systemctl daemon-reload systemctl restart docker
PS3="是否开机启动 Docker(Y/n) : " read -r -p "${PS3}" REPLY for (( ; ; )); do case "$REPLY" in Y | y) systemctl enable docker break ;; N | n) break ;; esac done }
print() { echo -e '##############################################################################################################################################################################' echo -e '## Docker 安装完成 ...' echo -e "## $(docker -v)" echo -e "## $(docker-compose -v)" echo -e "## New $(docker compose version) Doc(https://docs.docker.com/compose/compose-v2/)" echo -e '##############################################################################################################################################################################' }
run() { check uninstall before_install install after_install print }
run
|