1.2 安装与验证命令现场:从零确认 Docker 可用


1.2 安装与验证命令现场:从零确认 Docker 可用

本节摘要:装完 Docker 不等于能用。本节给出完整的验证流水线:查服务状态、跑 hello-world、确认开机自启、处理权限报错,每一步都配真实终端会话与失败现场。这是新机器交付时的标准动作,也是后续所有词条的地基。

承接 1.1 的词条卡:上一节你已经会用 version 与 info 提问,这一节处理"提问得到坏消息"之后的整条修复与确认链路。本节过完,环境这个变量就从你的问题清单里划掉了。

一、验证流水线总览

图:安装验证四道关卡

图:安装验证四道关卡

二、现场回放:一台 Debian 新机器的验证过程

关卡一:服务状态

$ sudo systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled) Active: active (running) since Thu 2026-09-03 10:12:07 CST; 3 days ago Main PID: 1243 (dockerd)

看三处:Active 必须是 active (running)Loaded 括号里的 enabled 表示开机自启已配置;Main PID 是守护进程的进程号。如果 Active 是 inactivefailed,先启动服务:

$ sudo systemctl start docker $ sudo systemctl status docker --no-pager | head -n 3 ● docker.service - Docker Application Container Engine Active: active (running) since Thu 2026-09-03 10:20:11 CST; 5s ago

--no-pager 让输出直接打印不进分页器,脚本里都该带上。

关卡二:跑通最小闭环

$ sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world c1ec31eb5944: Pull complete Digest: sha256:...(摘要串) Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly.

这五行输出背后跑完了完整链路:本地找不到镜像、去仓库拉取、创建容器、容器执行并打印问候、退出。看到 "Hello from Docker!" 就证明客户端、守护进程、仓库网络三者全部可用。如果卡在 Pulling 不动,多半是网络到镜像仓库不通,属于环境问题而非安装问题。

关卡三:确认开机自启

$ systemctl is-enabled docker enabled

返回 enabled 即可。若是 disabled

$ sudo systemctl enable docker Created symlink /etc/systemd/system/multi-user.target.wants/docker.service

关卡四:免 sudo 配置

不加 sudo 直接敲 docker 命令时的典型报错:

$ docker ps permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

修复动作是把当前用户加进 docker 组:

$ sudo usermod -aG docker $USER $ exit

⚠️ 关键一步:必须退出登录再重新进来,组成员身份才生效。改完不重登就测,一定会误以为配置失败。

重新登录后验证:

$ docker run --rm hello-world Hello from Docker!

这次加了 --rm——容器退出后自动删除,验证场景不留垃圾,这个义项在叁部 run 词条里还会展开。

三、失败现场速查表

症状 真实报错片段 判断与动作
守护进程未启动 Cannot connect to the Docker daemon 回关卡一,systemctl start docker
无权限 permission denied ... docker.sock 回关卡四,加组并重登
网络不通 Pulling 卡住或 timeout 检查出口网络与仓库可达性
服务起不来 systemctl status 显示 failed 看 journalctl 的 dockerd 日志定位
$ sudo journalctl -u docker --no-pager -n 20 -- Logs begin at Thu 2026-09-03 09:58:12 CST -- Sep 03 10:11:55 host01 dockerd[1243]: time="..." level=info msg="Starting up" Sep 03 10:11:56 host01 dockerd[1243]: time="..." level=info msg="Loading containers: start."

journalctl 的 -u docker 过滤出守护进程日志,-n 20 只看最后二十行,服务启动失败时这里是第一手证据。

本节要点回顾

  • 四道关卡顺序执行:服务状态 → hello-world 试运行 → 开机自启 → 免 sudo,任何一环失败都先修再往下走。
  • "Hello from Docker!" 是最小闭环:一条命令验证了客户端、守护进程、仓库网络三者。
  • 加组必须重登:usermod 之后不重新登录,权限不生效。
  • --rm 是验证场景标配:试完即删,不留容器尸体。
  • 守护进程日志找 journalctl:status 里的 failed 只是结论,原因在日志里。

环境已验证可用,下一节学习 Docker 自带的帮助体系——它是这本词典之外你随时能打开的另一本词典。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U