使用阿里云镜像源安装 Docker
1. 更新系统包索引
首先,确保系统包索引是最新的:
sudo apt-get update
2. 安装依赖包
安装 Docker 所需的依赖包:
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
3. 添加 Docker GPG 密钥
使用阿里云的 Docker 镜像源来下载 Docker 的 GPG 密钥:
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
4. 设置 Docker 仓库
使用阿里云的 Docker 官方镜像源,添加 Docker 仓库地址:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5. 更新包索引并安装 Docker
更新包索引以包括 Docker 的镜像源,然后安装 Docker 引擎:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
6. 启动并验证 Docker
-
启动 Docker 服务并确保它已经启动:
sudo systemctl start docker sudo systemctl enable docker
-
验证 Docker 是否正确安装:
docker --version
你应该会看到 Docker 的版本信息。
7. 运行 Docker 测试
运行一个简单的 Docker 测试来确认安装成功:
sudo docker run hello-world
这将下载一个测试镜像并运行一个简单的容器。你应该会看到 Docker 成功运行的确认信息。
安装脚本
- 将脚本保存到文件:
vim install_docker.sh
- 添加执行权限:
chmod +x install_docker.sh
- 以root权限运行脚本:
sudo ./install_docker.sh
#!/bin/bash
# 设置颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color
# 输出信息函数
print_info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
print_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
print_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 检查是否为root用户
if [ "$EUID" -ne 0 ]; then
print_error "请使用root权限运行此脚本"
exit 1
fi
# 检查Docker是否已安装
print_info "检查Docker是否已安装..."
if command -v docker &> /dev/null; then
docker_version=$(docker --version)
print_warning "Docker已经安装: $docker_version"
read -p "是否继续重新安装Docker?(y/n): " choice
if [[ "$choice" != "y" && "$choice" != "Y" ]]; then
print_info "退出安装"
exit 0
fi
fi
# 开始安装过程
print_info "开始使用阿里云镜像源安装Docker..."
# 1. 更新系统包索引
print_info "1. 更新系统包索引..."
apt-get update || { print_error "系统包索引更新失败"; exit 1; }
# 2. 安装依赖包
print_info "2. 安装依赖包..."
apt-get install -y ca-certificates curl gnupg lsb-release || {
print_error "依赖包安装失败";
exit 1;
}
# 3. 添加Docker GPG密钥
print_info "3. 添加Docker GPG密钥..."
mkdir -p /usr/share/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg || {
print_error "Docker GPG密钥添加失败";
exit 1;
}
# 4. 设置Docker仓库
print_info "4. 设置Docker阿里云镜像源..."
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null || {
print_error "Docker仓库设置失败";
exit 1;
}
# 5. 更新包索引并安装Docker
print_info "5. 更新包索引并安装Docker..."
apt-get update || { print_error "包索引更新失败"; exit 1; }
apt-get install -y docker-ce docker-ce-cli containerd.io || {
print_error "Docker安装失败";
exit 1;
}
# 6. 启动并验证Docker
print_info "6. 启动Docker服务..."
systemctl start docker || { print_error "Docker服务启动失败"; exit 1; }
systemctl enable docker || { print_error "Docker服务设置开机启动失败"; exit 1; }
# 验证Docker安装
print_info "验证Docker安装..."
if docker --version; then
docker_version=$(docker --version)
print_info "Docker安装成功: $docker_version"
else
print_error "Docker安装验证失败"
exit 1
fi