官方一键脚本安装最省事,95%的linux服务器都能跑通;手动配源适合生产环境控版本但易因镜像源或gpg失败卡住;装前须确认内核≥3.10、发行版未eol、无docker.io等旧包残留。

直接装官方一键脚本最省事,95% 的 Linux 服务器(Ubuntu/Debian/CentOS/RHEL/Fedora)都能跑通;手动配源适合生产环境控版本,但容易因镜像源失效或 GPG 导入失败卡住。
确认系统是否满足最低要求
装之前不查清楚,后面 dockerd 启不来、docker run 报 kernel too old 都是白忙活。重点看三项:
-
uname -r输出内核版本 ≥ 3.10(CentOS 7 默认满足,但 CentOS 6 不行) -
cat /etc/os-release确认发行版和版本号,避免在已 EOL 的系统(如 CentOS 7.9 之后、Ubuntu 16.04)硬装新版 Docker -
which docker和systemctl status docker查是否残留旧包(尤其注意docker.io—— Ubuntu 官方源里的老版本,和docker-ce冲突)
用官方一键脚本安装(推荐新手 & 快速验证)
这条命令自动识别系统类型、添加源、导入密钥、安装 docker-ce、启动服务、设置开机自启,全程无交互:
curl -fsSL https://get.docker.com | sh
执行完后立刻验证:
- 运行
docker --version看是否输出类似Docker version 26.1.0 - 运行
sudo docker run hello-world(首次会拉镜像,需网络通畅) - 若提示
permission denied while trying to connect to the Docker daemon socket,说明当前用户没加进docker组:执行sudo usermod -aG docker $USER,然后彻底登出再登录(不是只开新 terminal)
手动配置国内镜像源(避免拉镜像超时)
脚本装完 dockerd 能跑,但默认走 docker.io 官方源,国内直连大概率超时或卡死。必须改 /etc/docker/daemon.json:
- 先确保目录存在:
sudo mkdir -p /etc/docker - 写入加速配置(选一个即可,腾讯云、阿里云、中科大都稳定):
{ "registry-mirrors": [ "https://mirror.ccs.tencentyun.com", "https://registry.cn-hangzhou.aliyuncs.com" ] } - 重载并重启守护进程:
sudo systemctl daemon-reload && sudo systemctl restart docker - 验证生效:
docker info | grep "Registry Mirrors"应该能打出你配的地址
卸载旧版残留导致的冲突
常见症状:docker version 显示客户端有、服务端没响应;systemctl start docker 失败且日志里出现 address already in use 或 failed to start daemon。本质是旧版 docker.io 或 docker-engine 残留进程或 socket 占着端口。
- Ubuntu/Debian 先清包:
sudo apt remove -y docker docker-engine docker.io containerd runc - CentOS/RHEL 先清包:
sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine - 删掉残留数据:
sudo rm -rf /var/lib/docker /etc/docker - 删掉旧 socket:
sudo rm -f /var/run/docker.sock - 做完再走一键脚本,基本就干净了
真正麻烦的从来不是“怎么装”,而是装完发现 docker pull 卡住不动、docker build 报 TLS 握手失败、或者非 root 用户死活没权限——这些几乎全指向镜像源没配对、用户组没刷新、或旧进程没杀净。动手前多敲两行 uname -r 和 systemctl status docker,比重装三次都管用。











