新买的云服务器是 Ubuntu 22.04,执行 docker 提示 command not found。linux 安装docker 无非两条路:发行版仓库直接装,或者加 Docker 官方源装新版,前者省事,后者版本新。
先看清系统再动手
cat /etc/os-release 确认是 Ubuntu、Debian 还是 CentOS,不同系命令不一样。安装要用 root 或者 sudo,装完把自己的用户加进 docker 组:sudo usermod -aG docker $USER,重新登录才生效,不然每条 docker 命令前面都得挂 sudo。旧版本先卸掉:sudo apt remove docker docker-engine docker.io,提示没装也没关系。
发行版仓库一条命令
Ubuntu 上 sudo apt update && sudo apt install -y docker.io,CentOS 上是 sudo yum install -y docker。包老一点,但依赖少、升级跟着系统走,跑普通容器够用。装完执行 systemctl enable --now docker,设成开机自启并立即启动。
官方源装新版本
需要新特性时,按官方文档添加密钥和软件源,再装 docker-ce。网上博客抄来的源地址经常过期,照抄容易报 GPG error 或者 404,建议直接看文档当前给出的命令。装之前把旧版本卸干净,否则两套包会冲突。
装完做三项检查
docker version 看客户端和服务端是不是都出来了,只显示客户端通常是服务没启动。docker run hello-world 能跑通,说明镜像拉取和容器运行正常。国内机器拉镜像慢,可以配镜像加速地址,写进 /etc/docker/daemon.json 后重启服务。docker info 能看到存储驱动和加速地址是否生效,顺手跑一个 nginx 容器验证端口映射更踏实。
别用 snap 版和 apt 版混装,路径和配置容易打架。linux 安装docker 的取舍很清楚:图省事用发行版仓库,要新版本用官方源。生产环境把版本号固定住,别让自动升级打乱正在跑的容器。