目录
- [1. 清除旧版本防止冲突](#1. 清除旧版本防止冲突)
- [2. 使用镜像源安装Docker](#2. 使用镜像源安装Docker)
- [3. 配置国内Docker源镜像加速](#3. 配置国内Docker源镜像加速)
- [4. 允许非 root 用户免 sudo 运行 Docker](#4. 允许非 root 用户免 sudo 运行 Docker)
- [5. 设置 Docker 开机自启](#5. 设置 Docker 开机自启)
1. 清除旧版本防止冲突
如果你的系统之前尝试安装过 Docker,建议先彻底清理干净:
bash
sudo apt-get remove docker docker-engine docker.io containerd runc
这样可以防止以前的安装残留干扰后续安装
2. 使用镜像源安装Docker
众所周知,国内的服务器/云服务器想要访问Docker会遇到网络问题,因此建议使用国内大厂提供的镜像源:
真的不是广告啊
- 更新 apt 包索引并安装基础依赖
bash
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
- 添加阿里云的 Docker GPG 密钥
bash
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- 将阿里云的 Docker 软件源写入系统列表
bash
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
- 再次更新索引并安装 Docker 核心及 Compose 插件
bash
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
- 验证是否安装成功
bash
docker --version
docker compose version
如果能正常输出版本号,说明安装成功。
3. 配置国内Docker源镜像加速
由于网络原因,在国内拉取 Docker 镜像非常容易超时,因此可以配置国内大厂提供的Docker镜像
防止你们说这个是阿里云镜像的广告,这里使用腾讯云
执行以下命令,直接创建并写入 Docker 配置文件:
bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
EOF
写入完成后,必须重启 Docker 服务使配置生效:
bash
sudo systemctl daemon-reload
sudo systemctl restart docker
检查加速是否生效:
bash
sudo docker info
在输出的内容接近底部的位置,寻找 Registry Mirrors: 字样,如果下方显示 https://mirror.ccs.tencentyun.com,说明设置成功
4. 允许非 root 用户免 sudo 运行 Docker
默认情况下,只有 root 用户或者加 sudo 才能运行 Docker。
如果想要让你和你创建的新用户能直接运行docker,可以按需执行以下操作:
- 如果你想让当前登录的用户免sudo执行,就把当前用户加入docker组
bash
sudo usermod -aG docker $USER
- 如果你想把创新创建的普通用户(假设用户名叫
tom)免sudo执行,那么就把它加入docker组
bash
# 记得把 tom 改成你需要的用户名
sudo usermod -aG docker tom
5. 设置 Docker 开机自启
确保服务器因为意外重启或用户手动重启后,Docker 能够自己跑起来:
bash
sudo systemctl enable docker
sudo systemctl enable containerd
免责声明
本教程针对Ubuntu系统编写,其它系统原理相同,但请其它系统用户检查命令准确性。
本教程已在本人服务器上正确完成运行,但不保证每台机器环境相同,请提前做好备份工作!