Created
March 2, 2024 01:12
-
-
Save D3-3109/62f281bb89e2b463385f3ac78be76f42 to your computer and use it in GitHub Desktop.
Docker install script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Docker 安装脚本 | |
set -e | |
function select_mirror() { | |
echo "请选择你想要使用的Docker镜像源:" | |
echo "1) 阿里云" | |
echo "2) 阿里云内网" | |
echo "3) 腾讯云" | |
echo "4) 腾讯云内网" | |
echo "5) Docker 官方(AWS)" | |
read -r mirror | |
case "$mirror" in | |
1) | |
DOCKER_MIRROR='https://mirrors.aliyun.com/docker-ce/linux' | |
;; | |
2) | |
DOCKER_MIRROR='http://mirrors.cloud.aliyuncs.com/docker-ce/linux' | |
;; | |
3) | |
DOCKER_MIRROR='https://mirrors.cloud.tencent.com/docker-ce/linux' | |
;; | |
4) | |
DOCKER_MIRROR='http://mirrors.tencentyun.com/docker-ce/linux' | |
;; | |
5) | |
DOCKER_MIRROR='https://download.docker.com/linux' | |
;; | |
*) | |
echo "输入错误,请重新运行脚本!" | |
exit 1 | |
;; | |
esac | |
} | |
function install_docker() { | |
case "$(uname -m)" in | |
x86_64) | |
ARCH='amd64' | |
;; | |
aarch64) | |
ARCH='arm64' | |
;; | |
armv7l) | |
ARCH='armhf' | |
;; | |
*) | |
echo "暂时不支持你的系统架构!" | |
exit 1 | |
;; | |
esac | |
case "$(sed -n -e '/^ID=/{s/ID=//; s/"//g; p;}' /etc/os-release)" in | |
ubuntu) | |
sudo apt remove docker docker-engine docker.io containerd runc || true | |
sudo apt update | |
sudo apt install -y \ | |
apt-transport-https \ | |
ca-certificates \ | |
curl \ | |
gnupg \ | |
lsb-release | |
curl -fsSL "${DOCKER_MIRROR}/ubuntu/gpg" | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg | |
echo \ | |
"deb [arch=$ARCH signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] ${DOCKER_MIRROR}/ubuntu \ | |
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null | |
sudo apt update | |
sudo apt install -y docker-ce docker-ce-cli containerd.io | |
;; | |
debian) | |
sudo apt remove docker docker-engine docker.io containerd runc || true | |
sudo apt update | |
sudo apt install -y \ | |
apt-transport-https \ | |
ca-certificates \ | |
curl \ | |
gnupg \ | |
lsb-release | |
curl -fsSL "${DOCKER_MIRROR}/debian/gpg" | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg | |
echo \ | |
"deb [arch=$ARCH signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] ${DOCKER_MIRROR}/debian \ | |
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null | |
sudo apt update | |
sudo apt install -y docker-ce docker-ce-cli containerd.io | |
;; | |
fedora) | |
sudo dnf -y install dnf-plugins-core | |
sudo dnf config-manager --add-repo "${DOCKER_MIRROR}/fedora/docker-ce.repo" | |
sudo dnf makecache | |
sudo dnf install -y docker-ce docker-ce-cli containerd.io | |
;; | |
centos|anolis|rocky|almalinux|alinux) | |
sudo yum remove docker docker-common docker-selinux docker-engine | |
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 | |
sudo yum-config-manager --add-repo "${DOCKER_MIRROR}/centos/docker-ce.repo" | |
sudo yum makecache | |
sudo yum install -y docker-ce | |
;; | |
raspbian) | |
sudo apt remove docker docker-engine docker.io containerd runc | |
sudo apt update | |
sudo apt install -y \ | |
apt-transport-https \ | |
ca-certificates \ | |
curl \ | |
gnupg \ | |
lsb-release | |
curl -fsSL "${DOCKER_MIRROR}/raspbian/gpg" | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg | |
echo \ | |
"deb [arch=$ARCH signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] ${DOCKER_MIRROR}/raspbian \ | |
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null | |
sudo apt update | |
sudo apt install docker-ce docker-ce-cli containerd.io | |
;; | |
rhel) | |
sudo yum remove docker docker-common docker-selinux docker-engine | |
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 | |
sudo yum-config-manager --add-repo "${DOCKER_MIRROR}/rhel/docker-ce.repo" | |
sudo yum makecache | |
sudo yum install -y docker-ce | |
;; | |
sles) | |
sudo zypper remove docker docker-common docker-selinux docker-engine | |
sudo zypper install -y yum-utils device-mapper-persistent-data lvm2 | |
sudo zypper addrepo "${DOCKER_MIRROR}/sles/docker.repo" | |
sudo zypper install -y docker | |
;; | |
*) | |
echo "暂时不支持你的操作系统!" | |
exit 1 | |
;; | |
esac | |
sudo systemctl enable --now docker | |
sudo docker run hello-world | |
} | |
select_mirror | |
install_docker | |
echo "安装完成,使用docker命令来管理容器和镜像" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment